为什么要添加SSH秘钥
在GitHub的官方文档中建议使用HTTPS链接,因为用过HTTPS URL在GitHub仓库可以随意clone或者push代码。采用HTTPS URL对项目文件在进行clone和push相对简单,仅需复制HTTPS URL 到 Git Bash 里面直接用clone命令克隆到本地。
而使用 SSH URL必须是项目的拥有者,并且必须添加SSH Key。这种方式的好处不仅带来安全性方面的提升,还可以无需在每次访问GitHub时都提供用户名或密码。
检查本地是否有SSH
$ ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist
输入上述命令,可以检查本地是否有SSH Key存在。通过返回信息,可知本地没有SSH Key,则需要生成一个SSH Key。
生成一个新的SSH Key秘钥
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
输入上述命令,将你的GitHub注册邮箱填入双引号中。下图返回信息表示key已经生成,需要指定存放key的地址。如果不需要特殊指定位置按下enter即可保存到默认地址。
接着新建一个秘钥短语密码,不输入则视为没有密码。
检查目录中是否出现了秘钥文件,这次看到了有两个id_rsa文件,证明秘钥已经生成。
将SSH Key密钥添加到ssh-agent
在将新的SSH Key密钥添加到ssh-agent来管理密钥之前,已经检查了现有的SSH密钥并生成了一个新的SSH密钥。
# start the ssh-agent in the background
$ eval $(ssh-agent -s)
> Agent pid 1637
将SSH私钥添加到ssh-agent。如果使用其他名称创建密钥,或者要添加具有其他名称的现有密钥,请使用私有密钥文件的名称替换命令中的id_rsa。
$ ssh-add ~/.ssh/id_rsa
输入密码后添加成功
向GitHub账户添加SSH Key
使用clip命令将秘钥文件复制到剪贴板。
$ clip < ~/.ssh/id_rsa.pub
# Copies the contents of the id_rsa.pub file to your clipboard
然后打开GitHub,点击左上角头像,下拉菜单中点击Settings。
在SSH Keys 标签点击New SSH Key
将秘钥复制在文本框中。
添加SSH Key秘钥成功。
测试SSH连接
打开Git Bash,输入下面命令。
$ ssh -T git@github.com
# Attempts to ssh to GitHub
看到下图警告信息则说明可以连接,输入yes。
> The authenticity of host 'github.com (IP ADDRESS)' can't be established.
> RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
> Are you sure you want to continue connecting (yes/no)?
接着输入秘钥短语密码,返回下图信息显示验证成功。
这样SSH-Key就添加完成了。