如何配置Github的SSH key

什么是SSH

SSH为Secure Shell的缩写,是建立在应用层和传输层基础上的协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理中额信息泄漏问题。我理解的就是给数据进行加密,然后防止中间人进行盗取,能使你的数据安全可靠的传输到目的方。在这里就是为了保证你电脑和Github仓库之间通信的安全。

如何配置Github的SSH

题主这里用的依然是windows平台。

Step 1: 检查SSH keys

首先,我们要查看在你电脑上已经存在的SSH keys。运行Git Bash 然后输入:

$ ls -al ~/.ssh

如果你已经有SSH公钥了。那么你将会看到下面格式的文件名字:

id_dsa.pub
id_esdsa.pub
id_ed25519.pub
id_rsa.pub

如果你已经存在公钥了,那么可以跳过Step 2直接去Step 3了。如果没有也不要担心,我们将在Step 2 会创建公钥。

Step 2: 生成SSH key

1. 在Git Bash中输入下面命令,引号内一定是你的Github注册邮箱地址

$ ssh-keygen -t rsa -b 4096 -C "your_github_email@example.com" 
#这句作用是生成一个新的SSH key

2. 等待几秒,当提示让你输入保存地址时,官方特别推荐放在默认位置就可以了。所以这里直接输入回车,提示如下:

Enter file in which to save the key (/Users/you/.ssh/id_rsa):[直接输入回车]

3. 将会提示你输入一个密码串(这里输入密码时不会显示在屏幕上的,只要输入正确按回车就好):

Enter passphrase (empty for no passphrase): [输入你想设置的密码]
Enter same passphrase again:[在输入一遍密码]
#虽然说这里可以设置为空,但是推荐用一个更加安全的密码

4. 输完密码之后,你将会得到你的SSH的指纹(fingerprint)或者id。他看起来如下图:

![fingerprint](http://ww3.sinaimg.cn/large/8ac969edjw1f1zt9ki8mbj20w80km7bp.jpg)

Step 3: 把你的SSH key添加到ssh-agent

1. 输入如下命令

$ ssh-agent -s

会响应:

echo Agent pid [端口号]

2. 加下来输入如下命令,把你的SSH key添加到ssh-agent

$ ssh-add ~/.ssh/id_rsa

如果他提示如下,说明不能打开您身份验证的代理

Could not open a connection to your authentication agent.

只需要输入如下命令即可解决:

ssh-agnet bash

更多关于ssh-agent的细节,可以用man ssh-agent 来查看

Step 4: 把你的SSH key添加到你的Github账户

首先你应该把你的 SSH key 复制到你的剪贴板,输入命令即可完成把 SSH key 复制到你的剪贴板:

$ clip < ~/.ssh/id_rsa.pub

添加到你的Github账户:

1. 浏览器登陆你的Github账户,点击右上角你的头像,然后点击Settings

![点击Settings](http://ww4.sinaimg.cn/large/8ac969edjw1f1zt9l88fjj20di0ki0u0.jpg)

2. 进入Settings,点击侧栏选项SSH key

![点击SSH key](http://ww4.sinaimg.cn/mw690/8ac969edjw1f1zt9lca00j20fs0qsmyx.jpg)

3. 单击右边 Add SSH key 按钮

![点击Add key](http://ww3.sinaimg.cn/mw690/8ac969edjw1f1zt9m4k6tj20wm05cta4.jpg)

4. 在下面输入标题(Title,这个可以自定义)和SHH Key(直接 Ctrl+V 粘贴就可以)

5. 点击下面的Add key按钮便可以添加成功了

Step 5: 测试是否连接成功

1. 在Git Bash中输入:

$ ssh -T git@github.com
# ssh尝试连接到GitHub

2. 你可能看到下面的警告:

The authenticity of host 'github.com(207.97.227.239)' can't be established.
RSA key fingerprint is SHA256:nJKJFKDnDLFJDndndnfkdfldjfldldfjld.
Are you sure you want to continue connecting (yes/no)?

确定提示信息里的指纹(fingerprint)是否匹配,如果匹配就键入`yes`,将得到:

Hi [你的用户名]! You’ve successfully authenticated, but GitHub does not provide shell access.

3. 如果提示信息中你的用户名是你的,那么你就成功建立了SSH key!😎😎

TIPS:如果遇到其他问题,可以参考官方文档,也可以给我留言

坚持原创技术分享,您的支持将鼓励我继续创作!