生成 Git SSH 密钥是实现免密码安全访问代码仓库(如 GitHub、GitLab、Gitee)的关键步骤。以下是基于主流操作系统和最佳实践的完整操作指南。

1. 检查是否已存在密钥

在生成新密钥前,建议先检查本地是否已有可用的密钥对,避免重复生成或覆盖现有配置。

打开终端(Windows 用户可使用 Git Bash 或 PowerShell,macOS/Linux 用户直接使用终端),输入以下命令:

ls -al ~/.ssh

查看输出中是否包含 id_rsa.pub、id_ed25519.pub 等以 .pub 结尾的文件。

  • ‌如果有‌:你可以直接使用现有的公钥,或通过 cat ~/.ssh/id_rsa.pub 查看内容并复制到 Git 平台。
  • ‌如果没有‌:请继续以下步骤生成新的密钥对。

2. 生成新的 SSH 密钥对

推荐使用安全性更高且性能更好的 Ed25519 算法;如果平台不支持或系统较老,可使用传统的 RSA 算法。

方案 A:使用 Ed25519 算法(推荐)

在终端中执行以下命令:

ssh-keygen -t ed25519 -C "your_email@example.com"

方案 B:使用 RSA 算法(兼容性好)

如果需要使用 RSA,建议指定 4096 位长度以确保安全:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

参数说明:‌

  • t:指定密钥类型(ed25519 或 rsa)。
  • b:指定密钥位数(仅 RSA 需要,推荐 4096)。
  • C:添加注释,通常填写你的邮箱地址,便于识别密钥归属。

生成过程中的交互提示:‌

  • Enter file in which to save the key: 直接按 ‌回车‌ 使用默认路径(通常为 ~/.ssh/id_ed25519 或 ~/.ssh/id_rsa)。
  • Enter passphrase: 设置私钥密码。
    • ‌推荐设置‌: 输入一个强密码并确认。这样即使私钥文件泄露,攻击者也无法直接使用。
    • ‌可选留空‌: 如果希望完全免交互(如用于自动化脚本),可直接按两次回车留空,但安全性会降低。

3. 获取并复制公钥

密钥生成后,你需要将‌公钥‌(.pub 文件)的内容复制到 Git 平台。

查看公钥内容:

# 如果你生成的是 ed25519 密钥
cat ~/.ssh/id_ed25519.pub

# 如果你生成的是 rsa 密钥
cat ~/.ssh/id_rsa.pub

4. 将公钥添加到 Git 平台

假如添加到了 github.com

5. 测试连接

在终端执行:

# 假如密钥被添加到了github.com
ssh -T git@github.com

‌成功响应示例:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

results matching ""

    No results matching ""