使用Github,也许你们以为比较麻烦的就是在每次push的时候,都须要输入用户名和密码。若是使用SSH,就能够记住用户名,并建立属于本身 的密码来保证安全操做,还有神奇的一招能够“不用输入密码”哦。下面将介绍如何建立SSH Keys并将公钥加到GitHub帐户中,使用SSH Keys在本机和GitHub之间创建一个安全的链接。git
首先,咱们须要看看是否看看本机是否存在SSH keys,打开Git Bash,并运行:github
1
|
$cd~/.ssh#
|
检查你本机用户home目录下是否存在.ssh目录shell
若是,不存在此目录,则进行第二步操做,不然,你本机已经存在ssh公钥和私钥,能够略过第二步,直接进入第三步操做。安全
输入以下命令:app
1
2
3
4
|
$ssh-keygen-trsa-C"your_email@example.com"
#这将按照你提供的邮箱地址,建立一对密钥
Generating public/privatersa key pair.
Enter file inwhich tosave the key(/c/Users/you/.ssh/id_rsa):[Press enter]
|
直接回车,则将密钥按默认文件进行存储。此时也能够输入特定的文件名,好比/c/Users/you/.ssh/github_rsassh
接着,根据提示,你须要输入密码和确认密码(说到这里,若是你很放心,其实能够不用密码,就是到输密码的地方,都直接回车,因此每次push就只管回车就好了。所谓的最安全的密码,就是没有密码 – – 哈哈)。相关提示以下:ide
1
2
|
Enter passphrase(empty forno passphrase):[Typeapassphrase]
Enter same passphrase again:[Type passphrase again]
|
输入完成以后,屏幕会显示以下信息:测试
1
2
3
4
|
Your identification has been saved in/c/Users/you/.ssh/id_rsa.
Your publickey has been saved in/c/Users/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@example.com
|
运行以下命令,将公钥的内容复制到系统粘贴板(clipboard)中。spa
1
|
clip<~/.ssh/id_rsa.pub
|
接着:3d
1. 登录GitHub,进入你的Account Settings.
2. 在左边菜单,点击”SSH Keys”.
5. 点击”Add Key”按钮。
6. 再弹出窗口,输入你的GitHub密码,点击确认按钮。
7. 到此,大功告成了!
为了确认咱们能够经过SSH链接GitHub,咱们输入下面命令。输入后,会要求咱们提供验证密码,输入以前建立的密码就ok了。
1
|
$ssh-Tgit@github.com
|
你可能会看到告警信息,以下:
1
2
3
|
The authenticity of host'github.com (207.97.227.239)'can'tbe established.
RSA key fingerprint is16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want tocontinueconnecting(yes/no)?
|
不用担忧,直接输入yes。
若是看到下面信息,就说明一切完美!
Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.
首先,咱们须要看看是否看看本机是否存在SSH keys,打开终端(Terminal),并运行:
$cd ~/.ssh
# 检查你本机用户home目录下是否存在.ssh目录
若是,不存在此目录,则进行第二步操做,不然,你本机已经存在ssh公钥和私钥,能够略过第二步,直接进入第三步操做。
输入以下命令:
1
2
3
4
|
$ssh-keygen-trsa-C"your_email@example.com"
#这将按照你提供的邮箱地址,建立一对密钥
Generating public/privatersa key pair.
Enter file inwhich tosave the key(/Users/you/.ssh/id_rsa):[Press enter]
|
直接回车,则将密钥按默认文件进行存储。此时也能够输入特定的文件名,好比/Users/you/.ssh/github_rsa
接着,根据提示,你须要输入密码和确认密码。相关提示以下:
1
2
|
Enter passphrase(empty forno passphrase):[Typeapassphrase]
Enter same passphrase again:[Type passphrase again]
|
输入完成以后,屏幕会显示以下信息:
1
2
3
4
|
Your identification has been saved in/Users/you/.ssh/id_rsa.
Your publickey has been saved in/Users/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@example.com
|
运行以下命令,将公钥的内容复制到系统粘贴板(clipboard)中。
pbcopy < ~/.ssh/id_rsa.pub
接着:
1. 登录GitHub,进入你的Account Settings.
2. 在左边菜单,点击”SSH Keys”.
3. 点击”Add SSH key”按钮.
4. 粘贴你的密钥到key输入框中.
5. 点击”Add Key”按钮。
6. 再弹出窗口,输入你的GitHub密码,点击确认按钮。
7. 到此,大功告成了!
为了确认咱们能够经过SSH链接GitHub,咱们输入下面命令。输入后,会要求咱们提供验证密码,输入以前建立的密码就ok了。
$ ssh -T git@github.com
你可能会看到告警信息,以下:
1
2
3
|
The authenticity of host'github.com (207.97.227.239)'can'tbe established.
RSA key fingerprint is16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want tocontinueconnecting(yes/no)?
|
不用担忧,直接输入yes。
若是看到下面信息,就说明一切完美!
Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.
【注意】
若是前面没有将生成的密钥存放在默认的文件id_rsa中(而是my_rsa中),那么ssh -T git@github.com命令就须要添加参数来执行。以下:
$ ssh -T -i my_rsa git@github.com
其实,一套SSH密钥是能够用在不一样的SSH环境的.
可是若是因为某种要求,须要用不一样的SSH密钥链接不一样的Git环境。假设具体场景是,已经建了密钥github_rsa,还须要建立work_rsa链接工做环境git仓库,那么,能够按下面操做进行:
1. 建立另外一对密钥work_rsa.
$ssh-keygen -t rsa -C “work@mail.com”
#保存密钥为work_rsa
2. 添加新身份信息
$ssh-add ~/.ssh/work_rsa
3. 配置.ssh/config
咱们须要经过Host别名,将不一样的帐号区分开来。
1
2
3
4
5
6
7
8
9
|
Host me.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile~/.ssh/github_rsa
Host work.comp.com
HostName comp.com
PreferredAuthentications publickey
IdentityFile~/.ssh/work_rsa
|
参考文档:GitHub官方文档Generating SSH Keys