配置 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
检查目录列表,查看您是否已有公钥。默认情况下,公钥文件名以.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):
-
配置密钥
系统会提示您自定义文件名和密码。如果您想保留默认设置,可以直接按回车键。整个交互过程类似于以下示例:
$ 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 |
| . . |
| . |
| |
| |
+-----------------+
- 通过列出目录来验证已创建的密钥。
$ ls ~/.ssh
id_rsa id_rsa.pub
您将获得一对密钥文件名作为输出。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
将您的公钥添加到服务器(GitHub、BitBucket)
创建密钥对后,需要将公钥添加到 Git 托管服务器,以验证 SSH 通信。您可以按照链接中的步骤将密钥添加到GitHub和BitBucket(步骤 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)
最后一步
好了!所有配置都已完成,现在是时候验证密钥是否有效了。您可以git pull在项目根文件夹中执行此操作进行验证。它不应该要求输入任何凭据。
恭喜!👏 您已成功为您的 Git 仓库设置 SSH。如有任何问题,请留言。
下次见!😋
文章来源:https://dev.to/idrisrampurawala/configuring-ssh-for-git-2of1