借助 Docker 管理多个 Github 账户

github 的客户端可以保存用户名和密码,也可以设置 ssh 登录,不过在保存了一个用户名之后,想使用另一个用户就不方便切换了,此时可以借助 Docker 把 ssh 密钥保存在镜像中,不同的的镜像中保存不同的 ssh 密钥。
运行方式:
获取代码

git clone https://github.com/huzhenghui/Connecting-to-GitHub-with-SSH

进入项目目录

cd .\Connecting-to-GitHub-with-SSH\

构建 Docker 镜像

docker build -t ssh-github .

运行,将看到帮助说明

docker run ssh-github

获取公钥

docker run ssh-github key

把公钥复制到 github 页面中
https://github.com/settings/keys
测试

docker run ssh-github test

不想看代码的话看到这里会使用就可以了。
构建 Docker 镜像的脚本

FROM alpine

MAINTAINER huzhenghui hu@daonao.com

COPY known_hosts /root/.ssh/known_hosts
COPY entrypoint.sh /root/entrypoint.sh

RUN apk update && \
    apk add openssh-keygen openssh-client && \
    ssh-keygen -t rsa -b 4096 -N "" -C "" -f /root/.ssh/id_rsa && \
    eval "$(ssh-agent -s)" && \
    ssh-add /root/.ssh/id_rsa

ENTRYPOINT ["/bin/sh", "/root/entrypoint.sh"]

入口脚本

#!/bin/sh
if [ -$1- == -key- ]; then
        cat /root/.ssh/id_rsa.pub
elif [ -$1- == -test- ]; then
        ssh -T [email protected]
else
    echo
        echo 'Step 1 : print public key'
        echo
        echo -e "\trun"
        echo -e "\tdocker run  key"
        echo
        echo 'Step 2 : add key to github'
        echo
        echo -e "\tvisit"
        echo -e "\thttps://github.com/settings/keys"
        echo
        echo 'Step 3 : test'
        echo
        echo -e "\trun"
        echo -e "\tdocker run  test"
    echo
fi

你可能感兴趣的:(Linux,Docker,ssh,GitHub,Git)