原文:http://my.oschina.net/chape/blog/119983
1 前提:已安装ssh
2 检查SSH公钥
cd ~/.ssh
看看存不存在.ssh,如果存在的话,掠过下一步;不存在的请看下一步
3 生成SSH公钥
$ ssh-keygen -t rsa -C "your_email@youremail.com"
# Creates a new ssh key using the provided email Generating public/private rsa key pair.
Enter file in which to save the key (/home/you/.ssh/id_rsa):
按回车,现在你可以看到,在自己的目录下,有一个.ssh目录,说明成功了
3.1 输入github密码
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
这个时候输入你在github上设置的密码。
3.2 然后在.ssh中可以看到
Your identification has been saved in /home/you/.ssh/id_rsa.
# Your public key has been saved in /home/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@youremail.com
4 添加SSH公钥到github
打开github,找到账户里面添加SSH,把id_rsa.pub内容复制到key里面。
5 测试是否生效
使用下面的命令测试
ssh -T git@github.com
当你看到这些内容放入时候,直接yes
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
看到这个内容放入时候,说明就成功了。
Hi username!
You've successfully authenticated, but GitHub does not provide shell access
当你在github后台添加了ssh keys之后,如果你在本地 Git clone git://www.somesite.com/test.git 的时候出现了一些问题,不如access denied,那么你要在本地这么测试一下:
ssh -T git@github.com
如果返回是:
Permission denied (publickey).
那么你可能要在本地ssh-add一下,当然在这之前你可以使用 ssh -vT git@github.com 查看一下到底是因为什么原因导致的失败。
ssh-add ~/.ssh/youraccount_rsa
然后会返回如下:
Enter passphrase for /Users/andy/.ssh/youraccount_rsa:
Identity added: /Users/andy/.ssh/youraccount_rsa (/Users/andy/.ssh/youraccount_rsa)
之后再使用 ssh -T git@github.com
会返回成功:
Hi youraccount! You've successfully authenticated, but GitHub does not provide shell access.
说明你目前本地的ssh已经切换到了youraccount这个账号,
之后便可以进行git clone到本地:
git clone git@github.com:youraccount/yourproject.git
另:如果你有使用github官方的那个小猫app,那么当你git -T git@github.com的时候会使用你在github这个程序中设置的github账号进行登录,而不是ssh的rsa账号登录。
2014.12.12 , 发现可能是因为 known_hosts 文件里的公钥信息导致的
在/root/.ssh/known_hosts 文件里面将原来的公钥信息删除即可
不过还没验证