如何配置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 "[email protected]" 
     #这句作用是生成一个新的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

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_ras.pub

添加到你的Github账户:

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

    点击Settings

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

    点击SSH key

  3. 单击右边 Add SSH key 按钮

    点击Add key

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

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

Step 5: 测试是否连接成功

  1. 在Git Bash中输入:

     $ ssh -T [email protected]
     # 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:如果遇到其他问题,可以参考官方文档,也可以给我留言

updatedupdated2015-10-132015-10-13