

SSH 是一种有较高安全性的远程登录方式。SSH Key 就是我们登录的密钥。在 Github 上管理项目时,如果是使用 https url 进行 push
操作,是需要验证用户名和密码的。而使用 SSH 在 push
的时候是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。
并且处于众所周知的原因,大陆的用户使用 https 方式管理仓库时,经常会出现无法访问的情况,而 SSH 这种方式就可以避免这个问题。
通过 SSH 克隆项目其实很简单,我们先要在本地先生成一个 SSH Key,然后把这个 Key 添加到 Github 就可以了。
生成 SSH Key#
使用下面的命令,将示例邮箱何为自己用于注册 Github 时使用的邮箱。
ssh-keygen -t rsa -C "your_email@example.com"
bash代码参数含义:
- -t 指定密钥类型,默认是 rsa,可以省略。
- -C 设置注释文字,比如邮箱。
- -f 指定密钥文件存储文件名。
以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,如:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
bash我这里选择不输入文件名,使用默认文件名(推荐)。那么就会生成 id_rsa 和 id_rsa.pub 两个文件。
接着又会提示你输入两次密码(该密码是你 push
文件的时候要输入的密码,而非 Github 密码),
如果这里不输入密码,直接按回车。那么 push
的时候就不需要输入密码了。
查看 SSH Key#
如果在上面的步骤里没有这门指定密钥生成的位置,那么它就会生成在默认位置 ~/.ssh/
下。
查看 SSH Key:
cat ~/.ssh/id_rsa.pub
bash得到一串以 ssh-rsa
开头的密钥,复制下来。
或者直接通过命令复制:
clip < ~/.ssh/id_rsa.pub
bash将 SSH Key 添加到 Github#
登录 Github 账号,点击在主页右上角的头像进入 Settings,然后在左侧找到 SSH and GPG keys 点击进入。
点击绿色按钮 New SSH key 按钮,进入 Add new SSH Key ↗ 页面(直接点这里的蓝色链接也可以)。把你复制的 SSH key 粘贴到 key 所对应的输入框中,记得 SSH key 代码的前后不要留有空格或者回车。并在上面的 Title 里给这个密钥起一个别名。
测试 SSH Key#
使用这个命令:
ssh -T git@github.com
bash按下回车之后,会出现类似这样的警告:
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)?
bash这里输入 yes
并回车就好。
如果你创建 SSH key 的时候设置了密码,接下来就会提示你输入密码:
Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':
bash如果你密码输错了,会再要求你输入,知道对了为止。
注意:输入密码时如果出错了,使用删除键是无法更正的,只能重新输入。
密码正确后就能看到 Github 向你打招呼了:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
bash如何生成多个 SSH Key#
假如为 Github 生成一个 SSH,注意要使用不同的名称区分不同的 key,避免覆盖之前的文件。
ssh-keygen -t rsa -C "<您的 Github 邮箱>"
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa): <为了区分多个key,请填写自定义的名称>
bash