Git&GitHub SSH配置

记一篇 GitHub SSH 设置的博客,省得每次需要设置时都要去网上再搜一遍。

GitHub SSH 设置

1. 生成 ssh 密钥 id_rsa 和公钥 id_rsa.pub

1
2
3
ssh-keygen -t rsa
# ~/.ssh 下会生成密钥 id_rsa 和公钥 id_rsa.pub 文件
# Windows 在用户目录下也会生成

生成过程中会提示:

  • 输入保存路径(默认 ~/.ssh/id_rsa)
  • 设置密码短语(可选,直接回车跳过)

2. GitHub 的 SSH 设置

Settings > SSH and GPG keys > New SSH key,cat id_rsa.pub 后将公钥内容复制保存到如下图的位置即可。

github 的 ssh 设置

3. 测试是否成功

使用如下命令查看是否配对成功:

1
ssh -T git@github.com

配对成功则如下,否则从头再来。

测试是否成功

故障排除

常见问题及解决方案

问题原因解决方案
Permission denied (publickey)公钥未添加或添加错误检查 GitHub 上的公钥是否正确
Host key verification failed服务器指纹未信任删除 ~/.ssh/known_hosts 中的条目
Connection timed out网络问题或防火墙检查网络连接和防火墙设置
Permission denied (publickey,gssapi-keyex)SSH 配置错误检查 ~/.ssh/config 文件

调试命令

1
2
3
4
5
6
7
8
# 详细输出 SSH 连接过程
ssh -Tv git@github.com

# 检查 SSH 配置
cat ~/.ssh/config

# 检查已添加的密钥
ls -la ~/.ssh/

多账号配置

如果需要配置多个 GitHub 账号,可以在 ~/.ssh/config 中添加:

1
2
3
4
5
6
7
8
9
10
11
# 个人账号
Host github.com-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_personal

# 工作账号
Host github.com-work
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_work

使用时将 git@github.com: 替换为 git@github.com-personal: 即可。