1. 新建.ssh目录
2. 生成并添加第一个ssh key
$ ssh-keygen -t rsa -C "[email protected]" -f id_rsa_A
在Git Bash中执行这条命令一路回车,会在 ~/.ssh/ 目录下生成 id_rsa_A 和 id_rsa_A.pub 两个文件,用文本编辑器将 id_rsa_A.pub 中的内容复制一下粘贴到账户A的github上
3. 生成并添加第二个ssh key
$ ssh-keygen -t rsa -C "[email protected]" -f id_rsa_B
在Git Bash中执行这条命令一路回车,会在 ~/.ssh/ 目录下生成 id_rsa_B 和 id_rsa_B.pub 两个文件,用文本编辑器将 id_rsa_B.pub 中的内容复制一下粘贴到账户B的github上
4. 添加私钥
在 ~/.ssh 目录下新建一个known_hosts文件
$ touch known_hosts
git自动把新生成的私钥写到known_hosts中
$ ssh-add ~/.ssh/id_rsa_A $ ssh-add ~/.ssh/id_rsa_B
如果执行ssh-add时提示"Could not open a connection to your authentication agent",可以现执行命令:
$ ssh-agent bash
然后再运行ssh-add命令
# 可以通过 ssh-add -l 来确私钥列表 $ ssh-add -l # 可以通过 ssh-add -D 来清空私钥列表 $ ssh-add -D
5. 修改配置文件
在 ~/.ssh 目录下新建一个config文件
$ touch config
添加内容:(此处新加你的私钥目录和私钥对应的HostName)
# github Host github_A HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_A # github Host github_B HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_B
这样的话,你就可以通过使用github.com别名github_A(github_B)来明确说你是要使用id_rsa_A(id_rsa_B)的SSH key来连接github,即账号A(账号B)进行操作。
以后clone或者push时,[email protected]:xxxx/test.git => [email protected]_A:xxxx/test.git或者[email protected]_B:xxxx/test.git
6. 测试
$ ssh -T [email protected]_A
或者
$ ssh -T [email protected]_B
输出:"Hi user! You‘ve successfully authenticated, but GitHub does not provide shell access. ",就表示成功的连上github了
原文地址:https://www.cnblogs.com/softwarefang/p/9350296.html