GitLab - SSH 密钥设置
GitLab - 设置 SSH 密钥以进行安全访问
Section titled “GitLab - 设置 SSH 密钥以进行安全访问”为何在 GitLab 中使用 SSH 密钥?
Section titled “为何在 GitLab 中使用 SSH 密钥?”SSH(Secure Shell)密钥提供了一种与 GitLab 进行安全身份验证的方式,无需在每次与远程仓库(例如,git push、git pull、git clone)交互时输入用户名和密码。SSH 不使用密码,而是使用一对加密密钥:一个私钥(private key),您将其秘密保存在计算机上;以及一个公钥(public key),您将其上传到 GitLab。
优点包括:
- 增强安全性:SSH 密钥通常比基于密码的身份验证更安全,因为它们更难猜测或破解。
- 便利性:无需重复输入您的凭据。
- 自动化:对于需要与 GitLab 仓库交互的脚本和 CI/CD 流水线至关重要。
生成新的 SSH 密钥对
Section titled “生成新的 SSH 密钥对”在生成新密钥之前,最好检查一下您是否已经拥有密钥。
步骤 1:检查现有 SSH 密钥。打开您的终端(Windows 上是 Git Bash,macOS/Linux 上是 Terminal),然后运行:
$ ls -al ~/.ssh查找类似 id_rsa.pub、id_ecdsa.pub 或 id_ed25519.pub 的文件。如果您看到 .pub 文件,您很可能已经有了一对 SSH 密钥,可以直接跳到步骤 3,除非您想创建一对新的密钥。
步骤 2:生成新的 SSH 密钥对。我们推荐使用 Ed25519 算法,它既安全又高效。将 your_email@example.com 替换为您与 GitLab 账户关联的实际电子邮件地址。
$ ssh-keygen -t ed25519 -C "your_email@example.com"当提示 ‘Enter file in which to save the key (~/.ssh/id_ed25519):’ 时,您可以按 Enter 键接受默认位置。这将在您的 ~/.ssh 目录中创建 id_ed25519(私钥)和 id_ed25519.pub(公钥)。
当提示 ‘Enter passphrase (empty for no passphrase):’ 时,您可以输入一个安全的密码短语(passphrase),或者留空。密码短语增加了一层额外的安全性:如果有人获得您的计算机访问权限,他们仍然需要密码短语才能使用您的 SSH 密钥。如果您输入了密码短语,每次使用密钥时都会提示您输入(除非您使用 SSH 代理)。
生成过程的输出示例:
生成公钥/私钥对 ed25519。Enter file in which to save the key (/home/user/.ssh/id_ed25519): [按 Enter]Enter passphrase (empty for no passphrase): [输入密码短语或按 Enter]Enter same passphrase again: [再次输入密码短语或按 Enter]Your identification has been saved in /home/user/.ssh/id_ed25519Your public key has been saved in /home/user/.ssh/id_ed25519.pub密钥指纹是:SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx your_email@example.com密钥的 randomart 图像是:+--[ED25519 256]--+| .o+=+. || *.B o . || o.+ O o .|| . ..B = . || S o * || . . + E || . . o .|| . || |+----[SHA256]-----+步骤 3:将您的 SSH 私钥添加到 SSH 代理(可选但推荐)。这样可以避免每次使用密钥时重新输入密码短语。
在后台启动 SSH 代理:
$ eval "$(ssh-agent -s)"将您的 SSH 私钥添加到代理(如果您生成的是 RSA 密钥,请使用 id_rsa):
$ ssh-add ~/.ssh/id_ed25519将您的 SSH 公钥添加到 GitLab
Section titled “将您的 SSH 公钥添加到 GitLab”步骤 4:将您的 SSH 公钥复制到剪贴板。您需要 .pub 文件的内容。
在 macOS 上:
$ pbcopy < ~/.ssh/id_ed25519.pub在 Linux 上(需要安装 xclip 或 xsel):
$ cat ~/.ssh/id_ed25519.pub | xclip -selection clipboard # 使用 xclip# 或$ cat ~/.ssh/id_ed25519.pub | xsel --clipboard --input # 使用 xsel在 Windows 上(Git Bash):
$ cat ~/.ssh/id_ed25519.pub | clip如果这些命令不起作用,您可以在文本编辑器中打开文件 ~/.ssh/id_ed25519.pub(或 id_rsa.pub 等),然后手动复制其全部内容。内容通常以 ssh-ed25519 或 ssh-rsa 开头,并以您的电子邮件地址结尾。
步骤 5:将公钥添加到您的 GitLab 账户。
- 登录您的 GitLab 账户。
- 在右上角,点击您的头像,然后选择 ‘Edit profile’(编辑个人资料)或 ‘Preferences’(偏好设置)。
- 在左侧边栏中,点击 ‘SSH Keys’(SSH 密钥)。
- 将您复制的公钥粘贴到 ‘Key’(密钥)文本框中。
- ‘Title’(标题)字段通常会自动填充来自 SSH 密钥的注释(例如,您的电子邮件)。如果需要,您可以将其更改为更具描述性的标题(例如,‘我的工作笔记本’)。
- 可选地,为密钥设置一个 ‘Expires at’(过期日期)。
- 点击 ‘Add key’(添加密钥)按钮。
添加密钥后,您应该会看到它与标题、指纹和创建日期一起列出。
测试您的 SSH 连接
Section titled “测试您的 SSH 连接”步骤 6:测试您的 SSH 连接到 GitLab 是否正常工作。打开您的终端并运行:
$ ssh -T git@gitlab.com如果您使用的是自管型 GitLab,请将 gitlab.com 替换为您的 GitLab 实例域名。
首次连接时,您可能会看到类似以下消息:
无法建立主机 'gitlab.com (xxx.xxx.xxx.xxx)' 的真实性。ECDSA 密钥指纹是 SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw。您确定要继续连接吗 (yes/no/[指纹])?输入 yes 并按 Enter。然后您应该会看到一条欢迎消息,例如:
Welcome to GitLab, @username!如果您看到此消息,说明您的 SSH 密钥已正确设置。如果遇到问题,常见原因包括密钥权限不正确或 SSH 代理未运行或配置不当。请查阅 GitLab 的文档以排除 SSH 相关问题。
有关更多详细信息和故障排除,请参阅 GitLab 关于 SSH 密钥的官方文档:GitLab SSH 文档(注意:这是一个概念性链接,根据要求,如果不是文本,则不添加任何实时链接)。通常,在您偏好的搜索引擎中搜索 ‘GitLab SSH key setup’ 以获取最新的官方指南会很有帮助。