转载请注明出处:http://www.codelast.com/

如果你在Github上有一个项目,为了能让这个项目可以在多台计算机上开发,需要把目标计算机的SSH key添加到你的Github账户中,否则你以SSH方式git clone时会提示无权限,例如你可以试试:

git clone git@github.com:codelast/raspberry-pi.git

会输出类似于这样的错误信息:

Permission denied (publickey).

文章来源:http://www.codelast.com/
所以下一步就要在Github中添加SSH key,让你可以在目标计算机上进行开发以及代码提交。
其实Github上已经有完整的教程了,只不过我记性不好,每次都要去翻Github教程,所以特地写下来。

『1』检查SSH key是否已经存在
检查文件 ~/.ssh/id_rsa.pub 是否存在,如果存在,就不用生成一个新的SSH key了,直接跳到下面的第3步。
文章来源:http://www.codelast.com/
『2』生成一个新的SSH key
如果第1步中的SSH key不存在,则需要生成:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

其中,your_email@example.com要修改成你的邮箱地址。
回车后输出如下:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/xxx/.ssh/id_rsa):

其中,xxx是你的用户名,直接回车,会将key保存到默认文件中。
接着会输出:

Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

这两步是让你输入一个密码,以及确认密码,这个密码在你提交代码到Github时会用到。将这个密码设置成和另一台可以提交代码的计算机上的那个密码一致(要不然在N台计算机上就有N个密码,太麻烦了)。
回车后就提示成功了:

Your identification has been saved in /home/xxx/.ssh/id_rsa.
Your public key has been saved in /home/xxx/.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@example.com

到这一步,你会发现 ~/.ssh/id_rsa.pub 文件已经生成了。
文章来源:http://www.codelast.com/
『3』将SSH key添加到ssh-agent
先确认ssh-agent处于启用状态:

eval "$(ssh-agent -s)"

输出类似于:

Agent pid 32070

然后将SSH key添加到ssh-agent:

ssh-add ~/.ssh/id_rsa

这时又会要你输入密码:

Enter passphrase for /home/xxx/.ssh/id_rsa:

再次输入前面第2步中设置的密码,回车,这一步就算完成了。
文章来源:http://www.codelast.com/
『4』将SSH key添加到Github账户中
将SSH key复制到内存:

xclip -sel clip < ~/.ssh/id_rsa.pub

如果你的程序没有安装过xclip程序的话,需要先用 sudo apt-get install xclip 安装(对Ubuntu来说)。如果你不想装这个程序,直接 cat ~/.ssh/id_rsa.pub 并复制出其中的内容也可以。
然后,在Github个人设置的“SSH keys”界面中,点击“Add SSH key”,如下图所示:

Title 栏里填一个有意义的名字,用于标识你这个SSH key是用在哪里的,然后在 Key 那一栏里粘贴上刚用 xclip 命令复制出来的SSH key,最后点击“Add key”即可将此key添加到你的Github账户中了。

Add an SSH key

文章来源:http://www.codelast.com/
现在再试试本文一开始所说的git clone命令,你应该可以用SSH方式clone你有权限的项目了。

[原创] 在Github上添加SSH key
Tagged on:             

发表评论

电子邮件地址不会被公开。 必填项已用*标注