SSH作用
当我们通过一个邮箱在Git上注册一个账号,自己创建仓库,或者进行协同开发时。 后面当改账号对库进行访问时,每次都要输入密码。 SSH的作用是 在你使用的电脑上生产一个代表改账号的令牌(将该令牌的.pub上传到你的账号)。这样每次访问仓库都通过这个令牌,不需要再输入密码那么麻烦,每个你使用的电脑都要这样操作一下。 SSH具体的配置请阅读:git上的教程。
通过我们的开发是有多个git账号,以及不同的git平台。这样就设计到ssh的管理使用,下面就是对多个SSH进行管理的教程:
Multiple SSH Key
一个git账号 就要在本地电脑配置一个SSH Key. 当我们有多个git账号需要管理时.就需要分别配置不同的SSH key 并且在 ~/.ssh文件下配置 config 来管理.
一: 首先要懂得如果生成和配置SSH key , 步骤简单见:
https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/
二: 多个SSH key管理配置
- 生成一个公司用的SSH-Key
$ ssh-keygen -t rsa -C "youremail@yourcompany.com” -f ~/.ssh/id-rsa
在~/.ssh/目录会生成id-rsa和id-rsa.pub私钥和公钥。 我们将id-rsa.pub中的内容粘帖到公司gitlab服务器的SSH-key的配置中。
- 生成一个自己用的SSH-key
$ ssh-keygen -t rsa -C "youremail@your.com” -f ~/.ssh/github-rsa
在~/.ssh/目录会生成github-rsa和github-rsa.pub私钥和公钥。 我们将github-rsa.pub中的内容粘帖到github服务器的SSH-key的配置中。
- 添加私钥
$ ssh-add ~/.ssh/id_rsa $ ssh-add ~/.ssh/github_rsa
如果执行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`
-
修改配置文件
在 ~/.ssh 目录下新建一个config文件touch config
添加内容
#company account
Host github.com
HostName github.com
User toroYu
IdentityFile ~/.ssh/id_rsa
#luckySlider account
Host github.com
HostName github.com
User luckySlider
IdentityFile ~/.ssh/id_rsa_luckySlider
- 测试
$ ssh -T git@github.com
参考文章:
https://gist.github.com/jexchan/2351996
https://my.oschina.net/stefanzhlg/blog/529403
https://stackoverflow.com/questions/4565700/specify-private-ssh-key-to-use-when-executing-shell-command/11251797#11251797