Git 安全远程访问:SSH 密钥对生成、添加和连接步骤解析


在使用 Git 进行远程访问时,SSH 密钥是常用且安全的认证方式之一。下面是生成 SSH 密钥对、添加公钥到远程仓库以及通过 SSH 连接 Git 远程仓库的详细步骤。

1. 生成 SSH 密钥对

首先,你需要在本地机器上生成一对 SSH 密钥。

生成 SSH 密钥对的命令

在终端或命令提示符中运行以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -t rsa 指定使用 RSA 算法。
  • -b 4096 指定密钥的长度为 4096 位。
  • -C "your_email@example.com" 为密钥添加一个注释(通常是你的邮箱)。

生成过程中系统提示

  1. 指定密钥保存路径
    • 系统会提示你输入密钥的保存路径。通常,默认路径为 ~/.ssh/id_rsa。按 Enter 键使用默认路径。
  2. 设置密码
    • 你可以为 SSH 密钥设置一个密码,这样在使用密钥时需要输入密码。如果不想设置密码,可以直接按 Enter 键。

2. 添加公钥到 SSH 代理

生成密钥后,可以将私钥添加到 SSH 代理,以便管理密钥和连接。

启动 SSH 代理

在终端中运行:

eval "$(ssh-agent -s)"

该命令会启动 SSH 代理并输出代理的进程 ID。

添加私钥到 SSH 代理

运行以下命令,将私钥添加到 SSH 代理:

ssh-add ~/.ssh/id_rsa

3. 添加公钥到远程仓库

将生成的公钥添加到 Git 托管服务(如 GitHub、GitLab 或 Bitbucket)中。

获取公钥内容

运行以下命令,查看生成的公钥内容:

cat ~/.ssh/id_rsa.pub

复制输出的公钥内容。

添加公钥到 GitHub

  1. 登录 GitHub。
  2. 点击右上角的头像,选择 Settings
  3. 在左侧菜单中选择 SSH and GPG keys
  4. 点击 New SSH key 按钮。
  5. Title 输入框中输入一个描述性的标题。
  6. Key 输入框中粘贴刚才复制的公钥内容。
  7. 点击 Add SSH key 按钮。

添加公钥到 GitLab

  1. 登录 GitLab。
  2. 点击右上角的头像,选择 Settings
  3. 在左侧菜单中选择 SSH Keys
  4. Key 输入框中粘贴公钥内容。
  5. Title 输入框中输入一个描述性的标题。
  6. 点击 Add key 按钮。

添加公钥到 Bitbucket

  1. 登录 Bitbucket。
  2. 点击左下角的头像,选择 Bitbucket settings
  3. 在左侧菜单中选择 SSH keys
  4. 点击 Add key 按钮。
  5. Label 输入框中输入一个描述性的标题。
  6. Key 输入框中粘贴公钥内容。
  7. 点击 Add SSH key 按钮。

4. 通过 SSH 连接 Git 远程仓库

在本地配置 Git 以使用 SSH 连接远程仓库。

克隆远程仓库

使用 SSH URL 克隆远程仓库。例如:

git clone git@github.com:username/repository.git

其中 username 是你的 GitHub 用户名,repository 是你的仓库名称。

设置远程仓库 URL 为 SSH

如果你已经克隆了一个 HTTPS URL 的仓库,可以将其修改为 SSH URL:

git remote set-url origin git@github.com:username/repository.git

5. 测试 SSH 连接

运行以下命令测试是否能够成功通过 SSH 连接到 Git 远程仓库:

ssh -T git@github.com

如果成功,你会看到类似如下的提示:

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

通过上述步骤,你就可以使用 SSH 密钥安全地连接和操作 Git 远程仓库了。这样不仅提高了安全性,还简化了认证过程。


原文链接:codingdict.net