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 仓库,享受免密操作的便利。


相关文章

相关推荐
darkb1rd9 小时前
9arm-skills: 打造模块化 AI 技能实战指南
开源·github·好物分享
小雨青年9 小时前
GitHub Actions 自定义 Runner 镜像实战:把初始化环境提前做好
github
解道Jdon10 小时前
从Go转向Rust迁移指南:靠自觉 vs. 靠编译器
ide·windows·git·svn·eclipse·github·visual studio
简创AIGC陶先生10 小时前
【剪映小助手】音频处理工具接口
github
markyankee10110 小时前
GitHub Codespaces 创建与环境配置指南(Python + Conda 环境)
github
三无推导11 小时前
《OpenHands 安装部署教程:用 Docker 在本地快速跑通开源 AI 编码助手》
人工智能·python·docker·性能优化·开源·github
小宋102111 小时前
2026如何使用 GitHub 快速找到高质量开源项目?从搜索语法到 Trending 实战教程
github
一拳一个娘娘腔12 小时前
【SRC漏洞挖掘系列】第09期:XXE与反序列化 —— 当XML和Java开始“吃”代码
xml·java·安全·web安全·github
Cry丶12 小时前
GitHub 开源项目 PR 提交流程:从 Fork 到 CLA 签署
git·github·开源贡献·pull request·cla