Windows客户端配置GitHub的SSH公钥

2015-06-02 Eric Wang 更多博文 » 博客 » GitHub »

Git

原文链接 http://codepub.cn/2015/06/02/Windows-client-configuration-of-SSH-public-key-on-GitHub/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


检查SSH keys的设置

$ cd ~/.ssh/

如果显示"No such file or directory",跳到第三步,否则继续。

备份和移除原来的SSH key设置

如果已经存在key文件,需要备份该数据并删除之

$ ls
id_rsa  id_rsa.pub  known_hosts
$ mkdir key_backup
$ cp id_rsa* key_backup/
$ rm id_rsa*

生成新的SSH key

输入下面的代码,可以生成新的key文件,只需要使用默认的设置即可,当需要输入文件名的时候,回车即可

$ ssh-keygen -t rsa -C "你的邮箱@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/WX/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/WX/.ssh/id_rsa.
Your public key has been saved in /c/Users/WX/.ssh/id_rsa.pub.
The key fingerprint is:
1d:cc:7e:b3:7e:92:f7:ab:c6:75:56:73:62:30:bc:8c 你的邮箱@qq.com
The key's randomart image is:
+--[ RSA 2048]----+
|           .     |
|         o  +    |
|          +o +   |
|         oE.o o.o|
|        S o o. .+|
|           . o .o|
|            o....|
|           .ooo  |
|            o=.oo|
+-----------------+

添加SSH key到GitHub

用文本编辑工具打开id_rsa.pub文件,如果看不到这个文件,你需要设置显示隐藏文件。准确的复制这个文件的内容,才能保证设置的成功。 在GitHub的主页上点击设置按钮,选择SSH Keys项,把复制的内容粘贴进去,然后点击Add Key按钮即可,Title任意选择。

测试一下

输入下面命令,测试是否设置成功

$ ssh -T git@github.com
Hi shijiebei2009! You've successfully authenticated, but GitHub does not provide shell access.

设置你的账号信息

现在你已经可以通过SSH链接到GitHub了,还有一些个人信息需要完善的。

Git会根据用户的名字和邮箱来记录提交。GitHub也是用这些信息来做权限的处理,输入下面的代码进行个人信息的设置,把名称和邮箱替换成你自己的,名字必须是你的真名,而不是GitHub的昵称。

$ git config --global user.name "你的名字"
$ git config --global user.email "your_email@youremail.com"

解决本地多个SSH key问题

如果在eclipse或者其它云平台,可能也需要使用SSH key来认证,如果每次都覆盖原来的is_rsa文件,那么之前的认证就失效了,这个问题可以通过在~/.ssh目录下增加config文件来解决。

依然需要配置git用户名和邮箱

git config user.name "用户名"
git config user.email "邮箱"

生成ssh key时同时指定保存的文件名

ssh-keygen -t rsa -f ~/.ssh/id_rsa.codepub -C "email"

上面的id_rsa.codepub就是我们指定的文件名,这时~/.ssh目录下会多出id_rsa.codepub和id_rsa.codepub.pub两个文件,id_rsa.codepub.pub里保存的就是我们要使用的key。

新增并配置config文件

如果config文件不存在,先添加;存在则直接修改

touch ~/.ssh/config

在config文件里添加如下内容(User表示你的用户名)

Host *.codepub.cn
IdentityFile ~/.ssh/id_rsa.codepub
User admin

上传key到云平台后台并测试

sh -T git@git.codepub.cn

成功的话,会输出welcome欢迎信息! 日后如需添加,则按照上述配置生成key,并修改config文件即可。

参考文献 [1] http://beiyuu.com/github-pages/ [2] http://riny.net/2014/git-ssh-key/