SSH Key 配置与 Git 使用指南
1. 概述
SSH Key 用于在本地设备与 Git 远程仓库(如 GitHub、GitLab)之间建立安全认证连接,避免每次操作输入用户名和密码。
SSH Key 由一对密钥组成:
- 私钥(Private Key):保存在本地,必须保密
- 公钥(Public Key):添加到远程 Git 服务
2. 密钥类型说明
当前推荐使用:
-
ed25519(推荐)
- 安全性更高
- 性能更好
- 密钥更短
不建议新项目使用:
- RSA(仅用于兼容旧系统)
3. 检查本地是否已有 SSH Key
bash
ls -al ~/.ssh
若存在以下文件,则表示已有密钥:
id_ed25519id_ed25519.pub
4. 生成 SSH Key
bash
ssh-keygen -t ed25519 -C "your_email@example.com"
说明:
- 默认路径:
~/.ssh/id_ed25519 - 可选设置密码(passphrase)
生成结果:
| 文件 | 说明 |
|---|---|
| id_ed25519 | 私钥 |
| id_ed25519.pub | 公钥 |
5. 添加密钥到系统(macOS)
bash
eval "$(ssh-agent -s)"
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
6. 获取公钥
bash
cat ~/.ssh/id_ed25519.pub
复制输出内容,用于添加到 Git 平台。
7. 配置 Git 平台
GitHub
- 打开: https://github.com/settings/keys
- 点击 New SSH Key
- 粘贴公钥并保存
8. 测试连接
bash
ssh -T git@github.com
成功示例:
code
Hi <username>! You've successfully authenticated...
9. 首次连接安全提示说明
首次连接时会出现:
code
The authenticity of host 'github.com (...)' can't be established.
ED25519 key fingerprint is: SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU
官方指纹
code
SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU
若一致,可输入:
bash
yes
系统会自动记录到:
code
~/.ssh/known_hosts
10. 异常情况处理
10.1 Host key verification failed
bash
ssh-keygen -R github.com
ssh -T git@github.com
10.2 IP 地址异常
若出现:
code
github.com (198.18.x.x)
可能原因:
- 使用代理(VPN / Clash / 公司网络)
- DNS 被修改
- hosts 文件配置异常
排查方法
bash
ping github.com
bash
nslookup github.com
bash
cat /etc/hosts
10.3 权限错误
code
Permission denied (publickey)
可能原因:
- 未添加公钥到 Git 平台
- ssh-agent 未加载密钥
- 使用了错误的密钥
11. 进阶配置(可选)
多账号 SSH 配置
可通过配置文件实现:
code
~/.ssh/config
示例:
code
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work