如何使用 SSH 连接到 GitHub – 简单解释

在本教程中,我们将了解如何使用 SSH 连接到 GitHub,以便通过 GitHub 安全地传输数据。 SSH 或 Secure Shell 提供了一种连接到另一个客户端/主机的安全方式。 它加密通过网络传输的数据,提供额外的安全层。

使用 SSH 连接到 Github 的步骤

现在让我们回顾在 Linux 机器上使用 SSH 连接到 Github 的步骤。

1.生成SSH密钥

检查现有密钥

要使用 ssh 连接到 GitHub,您的本地计算机上需要有一个 SSH 密钥。 要检查现有的 SSH 密钥,请打开终端并键入 ls 命令,如下所示:

ls -al ~/.ssh 

如果存在任何 ssh 密钥,则将列出 ssh 目录中的文件。 如果这些密钥存在,您可以选择使用现有密钥。

但是,为不同的应用程序/连接创建不同的 ssh 密钥总是被认为是安全的,这样即使一个密钥被泄露,另一个连接仍然安全。

因此,您可以创建一个新的 SSH 密钥,也可以继续执行将 SSH 密钥添加到 SSH-agent 的说明。

生成新的 SSH 密钥

打开终端并输入 ssh-keygen 命令:

ssh-keygen -t ed25519 -C "<label>" 

使用标签,您可以标记您的 SSH 密钥。 如果您创建这个 ssh 密钥对只是为了连接到 GitHub,您可以考虑使用“”格式作为您的标签。

如果您的系统不支持 Ed25519 算法,您可以改用 RSA 算法:

ssh-keygen -t rsa -b 4096 -C "<label>" 

使用 RSA 加密, ssh-keygen 将创建与我们教程中给出的文件名不同的文件名。 要解决该问题,请在提到的任何地方更改 SSH 文件名。

接下来,系统会提示您“Enter 保存密钥的文件”。 你可以按 Enter 使用默认位置或指定您自己的文件位置。 使用默认目录是个好主意,因为大多数程序都会查看 .ssh 以查找密钥。 为避免将来发生任何冲突,请转到默认目录并按 Enter.

最后,系统会提示您输入“安全密码”。 密码短语为连接增加了第二层安全性,因此不建议将其留空。 Enter 并重新输入您的密码进行确认。

生成的 SSH

2. 添加到SSH-agent

现在我们有了一个 SSH 密钥对,我们可以将我们的密钥添加到 ssh-agent。 ssh-agent 是 SSH 的密钥管理器。 将密钥添加到 ssh-agent 避免您一次又一次地输入密码。 将我们的密钥添加到 ssh-agent 我们开始 ssh-agent 在后台。

eval "$(ssh-agent -s)" 
添加到 SSH 代理

现在我们已经启动了 ssh-agent,我们将密钥对添加到 ssh。

ssh-add ~/.ssh/id_ed25519 
添加到 SSH 代理

注意:如果您在创建密钥期间使用了不同的目录/文件名,请将 ~/.ssh/id_ed25519 替换为密钥位置。

3. 将密钥添加到 GitHub 帐户

首先,我们需要将 SSH 公钥复制到剪贴板。 我们使用 xclip 从文件内容中复制。

sudo apt-get install xclip # If you are not on a Debian based distro, use package manager of your choice( eg. Pacman or yum)   xclip -selection clipboard < ~/.ssh/id_ed25519.pub 

注意:如果您在创建密钥期间使用了不同的目录/文件名,请将 ~/.ssh/id_ed25519 替换为密钥位置。 如果 xclip 不起作用,您可以使用任何文本编辑器从 ssh 密钥文件中复制。 确保不添加任何换行符或空格。

打开 GitHub 密钥设置并选择新建 SSH 密钥。

GitHub SSH

将剪贴板内容粘贴到 Key 下,并使用 Title 表单字段命名该键。

SSH表单

您将被重定向以键入您的密码。 身份验证后,您将看到您的 ssh 密钥已添加到您的 GitHub 帐户。 您现在可以使用 SSH 连接到 GitHub。 您还可以重新配置任何本地存储库以使用 SSH。

添加了 SSH

4. 使用 SSH 克隆存储库

转到要克隆的 GitHub 存储库。 单击下载代码按钮并选择 ssh 选项。

git ssh

复制命令并将其粘贴到终端中。 应该使用 ssh 克隆您的存储库。 任何 git 命令也将使用 ssh 进行远程连接。

git clone [email protected]:crstnbr/MonteCarlo.jl.git 
Github SSH 出去

结论

您现在已准备好使用安全连接来连接到 GitHub。 传输到 Github 上游的数据现在将被加密,因此更加安全。