发布于 2026-01-06 1 阅读
0

配置 Git 的 SSH 关于 SSH 设置 SSH 密钥 将密钥添加到 ssh-agent 将您的公钥添加到服务器(GitHub、BitBucket) 将远程 URL 更改为您的仓库 最后一步

配置 SSH 以使用 Git

关于 SSH

设置 SSH 密钥

将密钥添加到 SSH 代理。

将您的公钥添加到服务器(GitHub、BitBucket)

将远程仓库 URL 更改为您的仓库地址

最后一步

假设你要在由 Git 版本控制系统维护的服务器上部署一个应用程序。你使用自己的凭据克隆了 Git 仓库并配置了系统。当你运行 `git pull` 时git pull,它会再次要求你输入凭据。这肯定不是你想要的,对吧?你想要的是一种无需任何人的凭据就能拉取更改的方法。答案是——`git pull` connecting to git via SSH

当然,这并非该功能的唯一应用场景。它还能帮助您构建流程流水线等其他应用场景。现在我们对它有了一定的了解,接下来让我们看看它是如何工作的。

✋ 为简化起见,我们假设客户端机器运行的是 Linux 操作系统。此假设仅适用于我们在操作系统上运行的命令。配置 SSH 以使用 Git 的步骤与操作系统无关。对于其他操作系统,您可以使用相应的命令来实现相同的结果。

关于 SSH

SSH 是一种用于连接和验证远程服务器和服务的协议。SSH 在客户端和服务器之间建立安全连接,验证双方身份,并双向传递命令和输出。使用 SSH 密钥,您可以连接到 Git 托管服务器(例如 GitHub、BitBucket),而无需每次访问都提供用户名或密码。

了解 SSH 工作流程超出了本文的范围,因此我们将把讨论限制在该主题上。

设置 SSH 密钥

设置 SSH 时,需要创建密钥对——私钥和公钥。私钥通常保存在本地计算机上的某个.ssh文件夹中。公钥则被传递(上传)到服务器,用于验证请求。

创建新密钥之前,您可以检查是否已经创建了密钥对。

$ ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist
Enter fullscreen mode Exit fullscreen mode

检查目录列表,查看您是否已有公钥。默认情况下,公钥文件名以.ssh 结尾,.pub例如.ssh。id_rsa.pub
如果您没有现有的公钥和私钥对,或者不想使用现有密钥,请按照以下步骤生成新的 SSH 密钥:

  • 使用以下方式生成密钥ssh-keygen
$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/guest/.ssh/id_rsa):
Enter fullscreen mode Exit fullscreen mode
  • 配置密钥

    系统会提示您自定义文件名和密码。如果您想保留默认设置,可以直接按回车键。整个交互过程类似于以下示例:

$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/guest/.ssh/id_rsa):
Created directory '/home/guest/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/guest/.ssh/id_rsa.
Your public key has been saved in /home/guest/.ssh/id_rsa.pub.
The key fingerprint is:
4c:80:61:2c:00:3f:9d:dc:08:41:2e:c0:cf:b9:17:69 guest@myhost.local 
The key's randomart image is:
+--[ RSA 2048]----+
|*o+ooo.          |
|.+.=o+ .         |
|. *.* o .        |
| . = E o         |
|    o . S        |
|   . .           |
|     .           |
|                 |
|                 |
+-----------------+
Enter fullscreen mode Exit fullscreen mode
  • 通过列出目录来验证已创建的密钥。
$ ls ~/.ssh 
id_rsa id_rsa.pub
Enter fullscreen mode Exit fullscreen mode

您将获得一对密钥文件名作为输出。id_rsa其中一个是私钥,另一个id_rsa.pub是公钥。

将密钥添加到 SSH 代理。

如果您不想每次使用密钥时都输入密码,则需要将其添加到 ssh-agent 中。

# start the ssh agent
$ eval `ssh-agent` 
Agent pid 9700

# add your private key (the filename without .pub)
$ ssh-add ~/.ssh/id_rsa
Enter fullscreen mode Exit fullscreen mode

将您的公钥添加到服务器(GitHub、BitBucket)

创建密钥对后,需要将公钥添加到 Git 托管服务器,以验证 SSH 通信。您可以按照链接中的步骤将密钥添加到GitHubBitBucket(步骤 4)。

将远程仓库 URL 更改为您的仓库地址

复制SSH你的 Git 仓库 URL(例如git@bitbucket.org:repo/project.git),并remote-url在客户端计算机上的项目根文件夹中将其更改为:

# listing current remote-url
$ git remote -v 
origin https://guest@bitbucket.org/repo/project.git (fetch) 
origin https://guest@bitbucket.org/repo/project.git (push)

# change the url
$ git remote set-url origin git@bitbucket.org:repo/project.git

# verify if url changed by listing again
$ git remote -v 
origin git@bitbucket.org:repo/project.git (fetch) 
origin git@bitbucket.org:repo/project.git (push)
Enter fullscreen mode Exit fullscreen mode

最后一步

好了!所有配置都已完成,现在是时候验证密钥是否有效了。您可以git pull在项目根文件夹中执行此操作进行验证。它不应该要求输入任何凭据。

恭喜!👏 您已成功为您的 Git 仓库设置 SSH。如有任何问题,请留言。

下次见!😋

文章来源:https://dev.to/idrisrampurawala/configuring-ssh-for-git-2of1