Skip to content

Ubuntu 系统下配置 GitHub SSH 环境及代码拉取指南

本指南旨在帮助开发者在 Ubuntu 环境下建立安全、免密的 GitHub 访问通道,并针对新手常遇到的路径丢失、权限报错等问题提供解决方案。

1. 基础信息配置

首先配置 Git 的全局用户信息,这是所有 Git 操作的基础。

bash
# 设置用户名和邮箱
git config --global user.name "你的GitHub用户名"
git config --global user.email "你的注册邮箱"

2. 生成 SSH 密钥 (解决“找不到 .ssh 目录”问题)

许多新手在 cd ~/.ssh 时报错“没有那个文件或目录”,是因为 SSH 密钥对尚未生成,系统不会自动创建该目录。

  1. 执行生成命令
bash
ssh-keygen -t ed25519 -C "你的注册邮箱"
  1. 交互处理(三次回车)
  • 提示 Enter file in which to save the key直接回车。此时系统会自动创建 ~/.ssh 文件夹。
  • 提示 Enter passphrase直接回车
  • 提示 Enter same passphrase again直接回车
  1. 如何查看隐藏的 .ssh 目录
  • 终端命令:使用 ls -a ~ 即可看到以 . 开头的隐藏文件夹。
  • 图形界面:在文件夹窗口按 Ctrl + H 切换显示隐藏文件。

3. 将公钥托管至 GitHub

  1. 读取公钥内容
bash
cat ~/.ssh/id_ed25519.pub

注意:必须是 .pub 结尾的文件,这才是可以公开的“锁”,不带后缀的是不能泄露的“钥匙”。

  1. 网页配置步骤
  • 复制终端输出的整行字符串(以 ssh-ed25519 开头)。
  • 登录 GitHub -> Settings -> SSH and GPG keys -> New SSH key
  • 粘贴并保存。

4. 连通性验证 (确认身份)

在尝试拉取代码前,必须先进行“握手”测试:

bash
ssh -T git@github.com

验证结果说明:

  • 情况 A:看到 Hi [用户名]! You've successfully authenticated...

  • 结论:恭喜!SSH 通道已彻底打通。

  • 情况 B:看到 Permission denied (publickey)

  • 原因:GitHub 不认你的钥匙。请检查 GitHub 上的公钥是否完整,或是否复制错了文件。

  • 情况 C:看到 Are you sure you want to continue connecting (yes/no/[fingerprint])?

  • 对策:手动输入 yes 并回车。

5. 拉取代码:避开拼写与协议陷阱

配置好 SSH 后,下载链接必须使用 SSH 格式,否则依然会提示输入密码或报错。

5.1 识别链接格式

  • ✅ 正确 (SSH)git@github.com:作者名/仓库名.git
  • ❌ 错误 (HTTPS)https://github.com/作者名/仓库名.git

5.2 拼写检查建议

为了避免手动输入错误,建议始终点击 GitHub 仓库页面绿色 Code 按钮下的 复制图标

6. 进阶排查 (常见报错)

Q: 报错 "Could not read from remote repository"?

  1. 检查拼写:确认 github.com 后面是冒号 : 而不是斜杠 /
  2. 检查权限:重新运行 ssh -T git@github.com。如果返回 Hi [用户名] 但依然报错,说明该仓库可能是私有仓库,且你没有访问权限。

Q: 以前用 HTTPS 下载的代码,现在想改用 SSH?

进入项目目录,运行:

bash
git remote set-url origin git@github.com:用户名/仓库名.git

文档版本:v1.1

关键提示:先有 ssh-keygen 命令,后有 .ssh 文件夹。