GitHub SSH 密钥配置指南:本地与 Codespaces 环境

GitHub SSH 密钥配置指南:本地与 Codespaces 环境

使用 SSH 协议克隆 GitHub 仓库,可以免去每次 git push 输入密码的麻烦,同时数据传输更加安全。本文将分别介绍在本地电脑GitHub Codespaces 云端环境中配置 SSH 密钥的完整步骤。

为什么选择 SSH?

  • 免密操作 :配置一次,后续 git clonegit 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

  1. 显示并复制公钥内容:

    bash 复制代码
    cat ~/.ssh/id_ed25519.pub

    选中输出的全部内容(以 ssh-ed25519 开头,以邮箱结尾),复制到剪贴板。

  2. 登录 GitHub,点击右上角头像 → Settings

  3. 左侧菜单选择 SSH and GPG keys

  4. 点击 New SSH key

    • Title :为该密钥起一个易识别的名称(如 My-Laptop-Key)。
    • Key:粘贴刚才复制的公钥。
  5. 点击 Add SSH key,并根据提示确认你的 GitHub 密码。

1.3 测试 SSH 连接

bash 复制代码
ssh -T git@github.com
  • 首次连接会提示验证主机指纹(ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU),输入 yes 接受。

  • 如果看到以下信息,说明配置成功:

    text 复制代码
    Hi 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 pushgit pull 等操作将不再需要密码。


二、在 GitHub Codespaces 中使用 SSH 克隆

GitHub Codespaces 是一个云端开发环境,默认并没有关联你本地的 SSH 密钥。因此,若想在 Codespace 内使用 SSH 克隆私有仓库,需要在 Codespace 内部重新生成并添加密钥。

注:如果你只是克隆公开仓库,或者不介意每次输入密码,直接使用 HTTPS 方式更方便:git clone https://github.com/...,无需配置 SSH。

2.1 在 Codespace 中生成 SSH 密钥

  1. 打开你的 Codespace(通过浏览器或本地 VSCode 连接)。
  2. 打开终端(``Ctrl+```)。
  3. 执行与本地相同的命令:
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 仓库,享受免密操作的便利。


相关文章

相关推荐
xurime5 小时前
Excelize 开源十周年,发布 2.11.0 版本
golang·开源·github·excel·导出·导入·excelize·基础库
逛逛GitHub11 小时前
自测会不会被 Claude Code 标记为中国用户,有人做了个网页。
github
逛逛GitHub11 小时前
终于有个非 AI 相关的项目登上 GitHub 热榜,高低得推荐一下。
github
Lion0913 小时前
【04】50 行代码实现最小 Agent:不依赖任何框架
人工智能·github
狂炫冰美式15 小时前
凌晨睡不着,我给台风巴威写了个追踪网站
前端·后端·github
Maynor99617 小时前
GitHub 外链 / 自荐入口清单
github
oscar99918 小时前
3.4 Nginx 负载均衡——动态再平衡的反人性纪律
nginx·github·负载均衡·财富源代码
杨超越luckly18 小时前
Agent 应用指南:基于 OurAirports 的中国机场设施数据可视化
python·html·github·可视化·机场设施
Maynor在掘金18 小时前
憋了两个月,Gemini 3.5 Pro 终于要来了!前端代码一次生成,传闻 7 月 17 日亮相。
github
DogDaoDao1 天前
ShellGPT:当大语言模型遇见命令行——深度解析一个 CLI AI 生产力工具的设计与实现
人工智能·语言模型·自然语言处理·github·大语言模型·shellgpt·终端命令行