在 Ubuntu 上配置 GitHub 的 SSH 密钥可以让你通过 SSH 协议安全地与 GitHub 交互,无需每次输入用户名和密码。以下是详细步骤:
步骤 1:检查是否已有 SSH 密钥
- 打开终端,检查是否已有 SSH 密钥:
如果看到类似ls -al ~/.ssh
id_rsa
和id_rsa.pub
的文件,说明已有密钥,可以跳到步骤 3。如果没有,继续以下步骤。
步骤 2:生成新的 SSH 密钥
生成密钥对:
ssh-keygen -t ed25519 -C "你的邮箱@example.com"
-t ed25519
:使用 Ed25519 算法(推荐,安全性高)。-C
:添加注释,通常是你的邮箱。- 如果你的系统不支持 Ed25519(较老版本),可以用 RSA:
ssh-keygen -t rsa -b 4096 -C "你的邮箱@example.com"
按提示操作:
- 提示输入保存路径时,直接按 Enter(默认保存到
~/.ssh/id_ed25519
或~/.ssh/id_rsa
)。 - 提示设置密码时,可直接按 Enter(无密码)或输入密码(更安全)。
- 提示输入保存路径时,直接按 Enter(默认保存到
启动 SSH 代理:
eval "$(ssh-agent -s)"
添加私钥到 SSH 代理:
ssh-add ~/.ssh/id_ed25519
如果用的是 RSA 密钥,替换为
~/.ssh/id_rsa
。
步骤 3:将公钥添加到 GitHub
复制公钥到剪贴板:
cat ~/.ssh/id_ed25519.pub | xclip -selection clipboard
- 如果
xclip
未安装,先安装:sudo apt-get install xclip
- 或者手动打开
~/.ssh/id_ed25519.pub
(或id_rsa.pub
),复制内容。
cat ~/.ssh/id_ed25519.pub
- 如果
登录 GitHub:
- 打开浏览器,登录你的 GitHub 账户。
- 点击右上角头像,选择 Settings。
- 在左侧菜单中,点击 SSH and GPG keys。
- 点击 New SSH key 或 Add SSH key。
添加公钥:
- Title:给密钥取个名字(例如 “Ubuntu PC”)。
- Key type:选择 “Authentication Key”。
- Key:粘贴刚才复制的公钥内容。
- 点击 Add SSH key 保存。
步骤 4:测试 SSH 连接
测试连接:
ssh -T git@github.com
- 第一次连接可能会提示是否信任主机,输入
yes
。 - 如果成功,会看到类似:
Hi 用户名! You've successfully authenticated, but GitHub does not provide shell access.
- 第一次连接可能会提示是否信任主机,输入
如果连接失败:
- 检查
~/.ssh
目录权限:chmod 700 ~/.ssh chmod 600 ~/.ssh/id_ed25519 chmod 644 ~/.ssh/id_ed25519.pub
- 确保公钥正确添加到 GitHub。
- 检查网络是否阻止 SSH(端口 22)。
- 检查
步骤 5:配置 Git 使用 SSH
设置 Git 用户信息(如果尚未配置):
git config --global user.name "你的名字" git config --global user.email "你的邮箱@example.com"
确保仓库使用 SSH URL:
- 克隆仓库时,使用 SSH 地址(例如
git@github.com:用户名/仓库名.git
)。 - 如果已有仓库,检查远程 URL:
git remote -v
- 如果是 HTTPS 地址,改为 SSH:
git remote set-url origin git@github.com:用户名/仓库名.git
- 克隆仓库时,使用 SSH 地址(例如
步骤 6:验证
- 尝试克隆或推送代码到 GitHub:
或在现有仓库中:git clone git@github.com:用户名/仓库名.git
如果无需输入密码且操作成功,说明配置正确。git push origin main