http://blog.youkuaiyun.com/roly_yu/article/details/53483258
http://blog.youkuaiyun.com/yasaken/article/details/7348441
最后发现几点注意事项:
1 利用对应的用户名邮箱生成key
2 生成多个的时候记得自定义key的名称,否则会覆盖原有的key
3 在与服务器进行首次ssh连接时会出现如下提示,输入yes以继续,因为ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥,所以首次会有一个添加过程。
3 在进行ssh连接时,默认会使用的private key为id_sra,所以当我们改变了key的名称或者是多个key的时候需要指定key的位置。
在~/.ssh中创建config文件,然后利用IdentityFile 指定key的位置
生成SSH-Key
打开终端,前往.ssh目录
生成一个SSH-Key
$ ssh-keygen -t rsa -C "youremail@email.com"
- 1
- 1
自定义生成key的名字
设置密码
成功生成SSH-Key
配置SSH-Key
在~/.ssh/目录下会生成id-rsa_hostname和id-rsa_hostname.pub私钥和公钥。 我们将id-rsa_hostname.pub中的内容粘帖到服务器的SSH-key的配置中。
$ cat id_rsa_hostname.pub
- 1
- 1
在GitHub的设置中粘贴公钥
测试
$ ssh -T git@github.com
- 1
- 1
配置多个SSH-Key
打开Finder前往.ssh文件夹
编辑config文件
#github Host github HostName github.com User xxx@xxx.com IdentityFile ~/.ssh/id_rsa_1 #github2 Host github2 HostName github2.com User xxx2@xxx.com IdentityFile ~/.ssh/id_rsa_2 #github3 Host github3 HostName github3.com User xxx3@xxx.com IdentityFile ~/.ssh/id_rsa_3
设置名称为id_id_rsa的肯定没有问题了,
发现设置成其他名称的就算配置了 IdentityFile 依然报错
这是可以执行 ssh -v git@github.com
发现根本没有寻找设置的名称
所以hack的方式就是将另一个名称设置成id_dsa 因为回默认找这个文件