如果你常在未设置 SSH 密钥的情况下使用 GitHub,那么你真的不该这么做。试想一下——你每次提交时都要在控制台上输入电子邮件地址和密码,在这方面花的时间不如用来编程。

本文介绍使用 GitHub 生成和配置 SSH 密钥的快速指南。以后你不用再用老式验证方法了。

检查已有的 SSH 密钥

首先,检查你是否已经为计算机生成了 SSH 密钥。打开终端并输入以下命令:

ls -al ~/.ssh

如果你已经生成了 SSH 密钥,则应该看到类似于以下的输出:

-rw-------  1 user_name user_name  1766 Jul  7  2018 id_rsa
-rw-r--r--  1 user_name user_name   414 Jul  7  2018 id_rsa.pub
-rw-------  1 user_name user_name 12892 Feb  5 18:39 known_hosts

如果密钥已经存在,请跳至下面的复制你的公共 SSH 密钥部分。

如果你没有看到任何输出或该目录不存在(你收到 没有此类文件或目录 的消息),请运行:

mkdir $HOME/.ssh

然后用以下代码产生一组新的密钥:

ssh-keygen -t rsa -b 4096 -C your@email.com

现在,使用 ls -al ~/.ssh 命令检查你的密钥是否存在,并确保输出与上面列出的相似。

注意:SSH 密钥始终包含一对公共(id_rsa.pub)和私有(id_rsa)密钥生成。切勿泄露私钥,仅将公钥用于 GitHub 身份验证之类,这一点非常重要。你可以在此处详细了解 SSH/RSA 密钥对。

添加 SSH 密钥至 ssh-agent

当你登录并存储私钥时会启动 ssh-agent 这个程序。为了使其正常工作,它需要运行并保存你的私钥副本。

首先运行以下代码:

eval "$(ssh-agent -s)" # for Mac and Linux

或者:

eval `ssh-agent -s`
ssh-agent -s # for Windows

然后,给 ssh-agent 添加私钥:

ssh-add ~/.ssh/id_rsa

复制公共 SSH 密钥

接下来,你需要将公共 SSH 密钥复制到剪贴板。

对于 Linux 或 Mac,使用以下命令将公用密钥的内容打印到控制台:

cat ~/.ssh/id_rsa.pub # Linux

然后复制输出。

对于 Windows,只需要运行:

clip < ~/.ssh/id_rsa.pub # Windows

将公共 SSH 密钥添加到 GitHub

在 GitHub 设置页面点击 “New SSH key” 按钮:

给你的密钥起一个易于识别的名称,粘贴到公共密钥(id_rsa.pub)里:

image-15

最后,运行以下代码测试身份验证:

ssh -T git@github.com

如果你正确执行了所有这些步骤,那么你会看到以下消息:

Hi your_user_name! You've successfully authenticated, but GitHub does not provide shell access.

关于 SSH 的更多信息: