type
status
date
slug
summary
tags
category
icon
password
一、查看本机密钥
在iTerm:
如果看到有id_rsa和id_rsa.pub,则说明该机器已经生成了SSH密钥,只要复制id_rsa.pub里的密钥即可。
将会显示一个长字符串:
ssh-rsa *****….
否则,next
二、生成SSH密钥
一路回车,在下面处输入密码,任意即可,后面需要建立SSH连接需要使用:
Enter passphrase (empty for no passphrase): # 输入密钥文件授权密码
Enter same passphrase again: # 确认密钥文件授权密码
经过上面之后,得到:id_rsa和id_rsa.pub两个文件。
三、重命名文件
我们将id_rsa 和id_rsa.pub重命名为id_rsa_github、 id_rsa_github.pub。
OK,生成之后:执行下面的命令,将生成的key添加
添加成功后,显示:Identity added: id_rsa_github (id_rsa_github)
将id_rsa.pub中生成好的ssh key复制出来,在github profile设置中的ssh key中添加即可。
四、测试SSH连接
第一次连接,需要输入在第二步生成的密码; 此后,会提示你:
Hi wenghengcong! You’ve successfully authenticated, but GitHub does not provide shell access.
其中:
- “You’ve successfully authenticated”:表明你已经成功为本机设置SSH密钥对,且与github服务器身份校验通过。
- “but GitHub does not provide shell access”:是因为github提供的HTTPS方式,而不是SSH方式,查一下你设置的git库的remote url,看看使用的是哪种连接方式。
- 可以添加-v开关(ssh -vT [email protected]),打开Verbose模式,SSH在连接过程中将打印debug1级别的调试跟踪信息。
五、添加多个公钥
按照上面步骤二、三生成另外一对密钥。例如:id_rsa_gitlab、 id_rsa_gitlab.pub
然后在config文件中配置:
此时,再次测试就可以用别名:
同样会提示你:
Hi wenghengcong! You’ve successfully authenticated, but GitHub does not provide shell access.
六、其他命令
错误
假如ssh连接遇到错误:
packet_write_wait: Connection to xxx Broken pipe
可能是因为服务器空闲时间太长而关闭ssh连接(登录到服务器长时间不操作)。可以通过配置ssh客户端的ServerAliveInterval,或通过配置ssh服务端的ClientAliveInterval。
ssh服务端配置:
ssh客户端配置:
根据需要设置超时时间。