GitHub SSH 密钥配置指南:本地与 Codespaces 环境
使用 SSH 协议克隆 GitHub 仓库,可以免去每次
git push输入密码的麻烦,同时数据传输更加安全。本文将分别介绍在本地电脑 和 GitHub Codespaces 云端环境中配置 SSH 密钥的完整步骤。
为什么选择 SSH?
- 免密操作 :配置一次,后续
git clone、git push无需重复输入账号密码。 - 加密传输:所有通信均经过加密,防止中间人窃听。
- 支持多账户 :可在一台电脑上管理多个 GitHub 账户(通过
~/.ssh/config配置)。
如果你只想快速克隆仓库而不想配置 SSH,也可以直接使用 HTTPS 方式:
git clone https://github.com/用户名/仓库名.git,但每次推送可能需要输入凭证。
一、在本地使用 SSH 克隆
以下步骤适用于 Linux、macOS 以及 Windows(Git Bash 或 PowerShell + OpenSSH)。
1.1 生成本地 SSH 密钥对
打开终端,执行以下命令:
bash
# 检查是否已有 SSH 密钥(避免覆盖)
ls -al ~/.ssh
# 如果看到 id_ed25519 或 id_rsa 文件,可以直接使用,也可选择生成新密钥
# 生成新的 ED25519 密钥(推荐,安全且性能好)
ssh-keygen -t ed25519 -C "your_email@example.com"
-t ed25519:指定加密算法,ed25519是目前首选。-C:添加注释(通常用你的 GitHub 注册邮箱)。
按提示操作:
- 保存路径 :直接回车使用默认
~/.ssh/id_ed25519。 - 密码短语:可选,若设置则每次使用密钥需输入该密码(更安全)。
生成后,会在 ~/.ssh/ 目录下得到两个文件:
id_ed25519:私钥(绝不能泄露)id_ed25519.pub:公钥(可上传至 GitHub)
1.2 将公钥添加到 GitHub
-
显示并复制公钥内容:
bashcat ~/.ssh/id_ed25519.pub选中输出的全部内容(以
ssh-ed25519开头,以邮箱结尾),复制到剪贴板。 -
登录 GitHub,点击右上角头像 → Settings。
-
左侧菜单选择 SSH and GPG keys。
-
点击 New SSH key。
- Title :为该密钥起一个易识别的名称(如
My-Laptop-Key)。 - Key:粘贴刚才复制的公钥。
- Title :为该密钥起一个易识别的名称(如
-
点击 Add SSH key,并根据提示确认你的 GitHub 密码。
1.3 测试 SSH 连接
bash
ssh -T git@github.com
-
首次连接会提示验证主机指纹(
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU),输入yes接受。 -
如果看到以下信息,说明配置成功:
textHi username! You've successfully authenticated, but GitHub does not provide shell access.
1.4 使用 SSH 克隆仓库
bash
git clone git@github.com:owner/repo.git
之后在此仓库内进行 git push、git pull 等操作将不再需要密码。
二、在 GitHub Codespaces 中使用 SSH 克隆
GitHub Codespaces 是一个云端开发环境,默认并没有关联你本地的 SSH 密钥。因此,若想在 Codespace 内使用 SSH 克隆私有仓库,需要在 Codespace 内部重新生成并添加密钥。
注:如果你只是克隆公开仓库,或者不介意每次输入密码,直接使用 HTTPS 方式更方便:
git clone https://github.com/...,无需配置 SSH。
2.1 在 Codespace 中生成 SSH 密钥
- 打开你的 Codespace(通过浏览器或本地 VSCode 连接)。
- 打开终端(``Ctrl+```)。
- 执行与本地相同的命令:
bash
# 检查是否已有密钥
ls -al ~/.ssh
# 生成新密钥(请替换邮箱为你的 GitHub 邮箱)
ssh-keygen -t ed25519 -C "your_email@example.com"
同样,一路回车使用默认路径和空密码短语即可。
2.2 将公钥添加到 GitHub
bash
# 显示公钥内容
cat ~/.ssh/id_ed25519.pub
复制输出的公钥,然后按照 1.2 节 的步骤将其添加到你的 GitHub 账户中(注意为这个密钥起一个不同的 Title,例如 Codespace-llm-universe)。
一个 GitHub 账户可以添加多个公钥,每个公钥对应一台设备(本地电脑、Codespace、服务器等)。
2.3 测试并克隆
在 Codespace 终端中测试连接:
bash
ssh -T git@github.com
成功后会看到与本地相同的认证成功提示。之后即可使用 SSH 克隆仓库:
bash
git clone git@github.com:datawhalechina/llm-universe.git
三、常见问题与解决
| 问题 | 可能原因 | 解决方法 |
|---|---|---|
ssh -T git@github.com 提示 Permission denied (publickey) |
公钥未正确添加 / 私钥未加载 | 检查 GitHub 上公钥是否粘贴完整;执行 ssh-add ~/.ssh/id_ed25519 添加私钥到 agent |
克隆时报 git@github.com: Permission denied |
同上,或 SSH agent 未运行 | 运行 eval "$(ssh-agent -s)",再执行 ssh-add,然后重试 |
首次连接提示主机公钥验证(The authenticity of host ... can't be established) |
正常安全机制 | 输入 yes 接受,该指纹是 GitHub 官方 ED25519 公钥 |
Codespace 中 ssh-keygen 找不到命令? |
极少见 | 执行 sudo apt update && sudo apt install openssh-client(Ubuntu 环境) |
| 仍然想用 HTTPS,但不想每次输密码 | 可配置 Git 凭证存储 | git config --global credential.helper store,然后首次推送时输入一次密码即可 |
四、总结
配置 SSH 密钥是提升 Git 操作效率的常用手段。本文分别介绍了在本地电脑 和 GitHub Codespaces 环境中生成密钥、添加到 GitHub 并测试连接的完整流程。
- 本地配置一次永久生效,建议长期使用。
- Codespace 需要单独配置,因为它是独立的云端环境。
- 如果觉得配置 SSH 繁琐,在 Codespace 中直接使用 HTTPS 克隆往往是更快捷的选择。
掌握这两种方式后,你就可以在任何环境下顺畅地克隆、推送 GitHub 仓库,享受免密操作的便利。
相关文章: