Git SSH 连接密钥配置指南 🔑


📋 目录导航


📖 文章简介

本文是一份详细的 Git SSH 密钥配置指南,帮助开发者在 Gitee 和 GitHub 平台上设置安全的 SSH 连接。通过清晰的步骤说明和命令示例,您将学会如何生成密钥、配置 SSH 连接以及验证连接状态,从而实现无需密码的便捷 Git 操作。


🚀 Gitee 添加 SSH 连接密钥

1. ⚙️ Git 全局设置 (Git Bash 命令)

1
2
git config --global user.name "meimolihan" # 设置用户名
git config --global user.email "meimolihan@gmail.com" # 设置用户邮箱

2. 🔑 生成 Gitee RSA 密钥(4096 位)(Git Bash 命令)

  • 添加注释-C "注释"
  • 注释示例ssh-keygen -t rsa -b 4096 -C "注释" -f ~/.ssh/id_rsa_gitee
1
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_gitee

💡 执行此命令后,系统会提示你:

  • 输入密钥的密码(直接回车跳过)
  • 确认密码(直接回车跳过)

3. 📋 复制 Gitee 密钥到剪切板

Windows 系统 (CMD 命令)

1
cat ~/.ssh/id_rsa_gitee.pub | clip.exe

Linux 系统

1
cat ~/.ssh/id_rsa_gitee.pub

登录 Gitee,进入「设置」→「SSH 公钥」,添加刚才复制的公钥。

4. 📁 创建 Gitee 身份验证配置文件 (Git Bash 命令)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mkdir -p ~/.ssh && \
chmod 700 ~/.ssh && \
cat > ~/.ssh/config << EOF
Host github.com
User git # 用于连接的用户名
IdentityFile ~/.ssh/id_rsa_github # 指定私钥文件路径
Hostname ssh.github.com # 用于 SSH 连接的特定主机名
Port 443 # 指定连接时的端口号

Host gitee.com
User git # 用于连接的用户名
IdentityFile ~/.ssh/id_rsa_gitee # 指定私钥文件路径
IdentitiesOnly yes # 仅使用指定的私钥进行认证
EOF
chmod 600 ~/.ssh/config && \
cat ~/.ssh/config

5. 🔐 添加 Gitee 的主机密钥 (Git Bash 命令)

1
ssh-keyscan -t ed25519 gitee.com >> ~/.ssh/known_hosts

6. ✅ 验证 Gitee 连接 (Git Bash 命令)

1
ssh -T git@gitee.com

预期输出:
Hi meimolihan(@meimolihan)! You've successfully authenticated, but GITEE.COM does not provide shell access.
中文释义:
嗨,meimolihan(@meimolihan)!你已成功通过身份验证,但 GITEE.COM 不提供 shell 访问权限。

7. 👀 查看写入是否成功 (Git Bash 命令)

1
cat ~/.ssh/known_hosts

预期显示内容:

1
2
3
4
5
gitee.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEKxHSJ7084RmkJ4YdEi5tngynE8aZe2uEoVVsB/OvYN

github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
|1|bzw3j+8DI+9RgLAzAZdQKexoWM8=|f3Bxcts2uQzDJJ0Wb0YUM60Yqc4= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
|1|9b3z8FBBzXpAGeBRVHFx81E0Pw4=|ILx1dWLLIvT12ou1og/bNg7j+Mc= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=

示例图片


🐙 GitHub 添加 SSH 连接密钥

1. ⚙️ Git 全局设置 (Git Bash 命令)

1
2
git config --global user.name "meimolihan" # 设置用户名
git config --global user.email "meimolihan@gmail.com" # 设置用户邮箱

2. 🔑 生成 GitHub RSA 密钥(4096 位)(Git Bash 命令)

  • 添加注释-C "注释"
  • 注释示例ssh-keygen -t rsa -b 4096 -C "注释" -f ~/.ssh/id_rsa_github
1
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_github

💡 执行此命令后,系统会提示你:

  • 输入密钥的密码(直接回车跳过)
  • 确认密码(直接回车跳过)

3. 📋 复制 GitHub 密钥到剪切板

Windows 系统 (Git Bash 命令)

1
cat ~/.ssh/id_rsa_github.pub | clip.exe

Linux 系统

1
cat ~/.ssh/id_rsa_github.pub

登录 GitHub,进入「设置」→「SSH 公钥」,添加刚才复制的公钥。

4. 📁 创建 GitHub 身份验证配置文件 (Git Bash 命令)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mkdir -p ~/.ssh && \
chmod 700 ~/.ssh && \
cat > ~/.ssh/config << EOF
Host github.com
User git # 用于连接的用户名
IdentityFile ~/.ssh/id_rsa_github # 指定私钥文件路径
Hostname ssh.github.com # 用于 SSH 连接的特定主机名
Port 443 # 指定连接时的端口号

Host gitee.com
User git # 用于连接的用户名
IdentityFile ~/.ssh/id_rsa_gitee # 指定私钥文件路径
IdentitiesOnly yes # 仅使用指定的私钥进行认证
EOF
chmod 600 ~/.ssh/config && \
cat ~/.ssh/config

5. 🔐 添加 GitHub 的主机密钥 (Git Bash 命令)

1
ssh-keyscan -t ed25519 github.com >> ~/.ssh/known_hosts

6. ✅ 验证 GitHub 连接 (Git Bash 命令)

1
ssh -T git@github.com

预期输出:
Hi meimolihan! You've successfully authenticated, but GitHub does not provide shell access.
中文释义:
嗨,meimolihan!你已经成功进行了身份验证,但是 GitHub 不提供 shell 访问权限。

7. 👀 查看写入是否成功 (Git Bash 命令)

1
cat ~/.ssh/known_hosts

预期显示内容:

1
2
3
4
5
gitee.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEKxHSJ7084RmkJ4YdEi5tngynE8aZe2uEoVVsB/OvYN

github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
|1|bzw3j+8DI+9RgLAzAZdQKexoWM8=|f3Bxcts2uQzDJJ0Wb0YUM60Yqc4= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
|1|9b3z8FBBzXpAGeBRVHFx81E0Pw4=|ILx1dWLLIvT12ou1og/bNg7j+Mc= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=

🔧 常见问题与解决方案

❓ 问题 1: SSH 连接超时或失败

解决方案:

1
2
3
4
5
6
7
8
9
10
# 检查 SSH 配置是否正确
ssh -vT git@gitee.com
ssh -vT git@github.com

# 检查防火墙设置
sudo ufw status

# 检查网络连接
ping gitee.com
ping github.com

❓ 问题 2: 权限错误

解决方案:

1
2
3
4
# 修复文件权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
chmod 644 ~/.ssh/*.pub

❓ 问题 3: 密钥不被识别

解决方案:

1
2
3
4
# 重新启动 SSH 代理
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa_gitee
ssh-add ~/.ssh/id_rsa_github


💡 最佳实践

1. 🔒 定期更换密钥

建议每 6-12 个月更换一次 SSH 密钥,提高安全性。

2. 📝 使用不同的密钥

为不同的 Git 平台使用不同的密钥对,增强安全性。

3. 💾 备份密钥文件

将 SSH 密钥备份到安全的位置,防止丢失。

4. 🛡️ 使用密码保护密钥

在生成密钥时添加密码保护:

1
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/id_rsa -N "your_strong_password"

5. 🔍 定期检查连接状态

定期验证 SSH 连接是否正常工作:

1
2
3
# 每月检查一次连接状态
ssh -T git@gitee.com
ssh -T git@github.com


✨ 完成以上配置后,您就可以使用 SSH 协议安全地连接 Gitee 和 GitHub 进行代码操作了!