GitLab SSH Key 配置指南 – wiki词典

GitLab SSH Key 配置指南

使用 SSH 密钥可以安全地连接到 GitLab,而无需每次都输入用户名和密码。本指南将详细介绍如何生成 SSH 密钥、将其添加到 SSH 代理、上传到 GitLab 以及测试连接。

1. 检查现有 SSH 密钥

在生成新密钥之前,请检查您的系统上是否已存在 SSH 密钥对。打开您的终端或 Git Bash(在 Windows 上)并运行以下命令:

bash
ls -al ~/.ssh

如果您看到类似 id_rsa.pubid_ed25519.pub 或以 .pub 结尾的文件,则表示您可能已经有现有密钥。如果您想使用现有密钥,可以跳到第 3 步。否则,请继续生成新密钥。

2. 生成新的 SSH 密钥对

如果您没有现有密钥或希望创建一个新密钥,请使用 ssh-keygen 命令。为了更好的安全性,建议使用 ed25519,但 RSA 也是一个选项。

对于 ED25519(推荐):

bash
ssh-keygen -t ed25519 -C "[email protected]"

对于 RSA:

bash
ssh-keygen -t rsa -b 4096 -C "[email protected]"

请将 "[email protected]" 替换为您实际的电子邮件地址。

当系统提示时:

  • “Enter file in which to save the key (…):” 按 Enter 键接受默认文件路径(例如 ~/.ssh/id_ed25519~/.ssh/id_rsa)。
  • “Enter passphrase (empty for no passphrase):” 强烈建议您输入一个强密码以增加安全性。每次使用密钥时都需要输入此密码。如果您不需要密码,只需按 Enter 两次。

此过程将生成两个文件:一个私钥(例如 id_ed25519)和一个公钥(例如 id_ed25519.pub)。请务必妥善保管您的私钥,切勿共享。

3. 将您的 SSH 密钥添加到 SSH 代理

SSH 代理管理您的 SSH 密钥并将其保存在内存中,这样您就不必每次使用密钥时都输入密码。

  1. 启动 SSH 代理:
    bash
    eval "$(ssh-agent -s)"

    在某些系统上,尤其是 macOS,您可能需要配置 ~/.ssh/config 以自动将密钥添加到代理并将密码存储在钥匙串中。

  2. 将您的私钥添加到 SSH 代理:
    bash
    ssh-add ~/.ssh/id_ed25519

    如果您生成的是 RSA 密钥或以不同名称命名密钥,请将 id_ed25519 替换为正确的私钥文件名(例如 id_rsa)。
    如果您设置了密码,系统将提示您现在输入密码。

4. 将公共 SSH 密钥添加到 GitLab

现在您需要将您的公钥添加到您的 GitLab 帐户。

  1. 将您的公钥复制到剪贴板。

    • Linux:
      bash
      cat ~/.ssh/id_ed25519.pub | xclip -selection clipboard

      (您可能需要先安装 xclipsudo apt-get install xclip
    • macOS:
      bash
      cat ~/.ssh/id_ed25519.pub | pbcopy
    • Windows (Git Bash):
      bash
      cat ~/.ssh/id_ed25519.pub | clip

      或者,您可以使用文本编辑器打开 .pub 文件并复制其全部内容。
  2. 登录 GitLab:

    • 访问您的 GitLab 实例(例如 gitlab.com)。
    • 在右上角,选择您的头像,然后选择 Edit profilePreferences
    • 在左侧边栏中,选择 SSH Keys
    • 选择 Add new key
    • Key 框中,粘贴您的公钥的全部内容。
    • 为您的密钥添加一个描述性 Title(例如“我的工作笔记本电脑”)。
    • (可选)设置密钥的 Expiration date
    • 点击 Add key

5. 测试您的 SSH 连接

要验证您的 SSH 密钥是否已正确配置到 GitLab,请打开您的终端或 Git Bash 并运行:

bash
ssh -T [email protected]

  • 如果您连接的是自管型 GitLab 实例,请将 gitlab.com 替换为您的实例的 URL(例如 ssh -T [email protected])。
  • 首次连接时,您可能会看到有关主机真实性的警告。输入 yes 并按 Enter 键以继续连接并将 GitLab 添加到您的已知主机列表中。
  • 如果成功,您应该会看到“Welcome to GitLab, @yourusername!”的消息。

现在,您可以使用 SSH 克隆 GitLab 存储库,而无需输入您的用户名和密码。例如:

bash
git clone [email protected]:groupname/reponame.git

滚动至顶部