非常抱歉,我似乎无法直接创建文件。我之前尝试使用一个不存在的工具,这是我的失误。
不过,我已经为您准备好了完整的“GitHub SSH 配置完全指南”的内容。您可以手动复制以下内容并将其保存到 github_ssh_configuration_guide.md 文件中。
GitHub SSH 配置完全指南
介绍
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上安全地运行网络服务。将 SSH 密钥连接到您的 GitHub 帐户是管理和访问您的仓库的一种安全方式,无需在每次推送或拉取时都输入用户名和密码。
本指南将详细介绍在您的计算机上生成 SSH 密钥、将其添加到您的 GitHub 帐户以及测试连接的步骤。
为什么要使用 SSH?
与使用 HTTPS 相比,使用 SSH 密钥有几个优点:
- 方便性: 设置完成后,您无需在每次与远程仓库交互时都输入凭据。
- 安全性: SSH 密钥比密码更难破解。它们是非常长的字符串,并且在没有相应私钥的情况下,公钥是无用的。
第 1 步:检查现有的 SSH 密钥
在生成新的 SSH 密钥之前,最好检查一下您的计算机上是否已经存在 SSH 密钥。
- 打开 Git Bash 或您的终端。
- 输入以下命令:
bash
ls -al ~/.ssh - 检查目录列表,看是否存在名为
id_rsa.pub、id_ecdsa.pub或id_ed25519.pub的文件。如果存在,您已经有一个 SSH 密钥,可以跳到 第 4 步。
第 2 步:生成新的 SSH 密钥
如果您没有现成的 SSH 密钥,可以生成一个新的。
- 打开 Git Bash 或终端。
-
粘贴以下命令,并将
[email protected]替换为您的 GitHub 电子邮件地址。
bash
ssh-keygen -t ed25519 -C "[email protected]"
> 注意: 如果您的系统不支持 Ed25519 算法,您可以使用 RSA:
>ssh-keygen -t rsa -b 4096 -C "[email protected]" -
当提示 “Enter a file in which to save the key” 时,您可以按 Enter 接受默认文件位置。
> Enter a file in which to save the key (/c/Users/you/.ssh/id_ed25519): [Press enter] - 在下一个提示符下,输入一个安全的密码。这是一个可选但强烈推荐的步骤,可以为您的密钥增加一层额外的安全性。
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
第 3 步:将您的 SSH 密钥添加到 ssh-agent
ssh-agent 是一个帮助程序,可以跟踪您的身份密钥并管理它们的密码。
- 确保 ssh-agent 正在运行。
bash
eval "$(ssh-agent -s)" - 将您的 SSH 私钥添加到 ssh-agent。
bash
ssh-add ~/.ssh/id_ed25519
第 4 步:将您的 SSH 公钥添加到您的 GitHub 帐户
- 将 SSH 公钥的内容复制到剪贴板。
bash
cat ~/.ssh/id_ed25519.pub
或者,您可以使用clip(Windows) 或pbcopy(Mac) 直接复制。
bash
cat ~/.ssh/id_ed25519.pub | clip - 在 GitHub 的右上角,点击您的个人资料照片,然后点击 Settings。
- 在用户设置侧边栏中,点击 SSH and GPG keys。
- 点击 New SSH key 或 Add SSH key。
- 在 “Title” 字段中,为新密钥添加一个描述性标签(例如,”我的笔记本电脑”)。
- 将您复制的密钥粘贴到 “Key” 字段中。
- 点击 Add SSH key。
- 如果出现提示,请输入您的 GitHub 密码进行确认。
第 5 步:测试您的 SSH 连接
- 打开 Git Bash 或终端。
- 输入以下命令:
bash
ssh -T [email protected] - 您可能会看到一条警告,指出无法确定主机的真实性。
> The authenticity of host 'github.com (IP ADDRESS)' can't be established.
> ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
> Are you sure you want to continue connecting (yes/no)?
输入yes。 - 如果一切顺利,您将看到一条包含您用户名的消息。
> Hi username! You've successfully authenticated, but GitHub does not provide shell access.
恭喜!您已经成功配置了 SSH 密钥并将其连接到您的 GitHub 帐户。
故障排除
-
Permission denied错误:- 确保您的 SSH 密钥已正确添加到您的 GitHub 帐户。
- 验证
ssh -T [email protected]命令是否成功。 - 确保您的本地仓库配置为使用 SSH URL 而不是 HTTPS。您可以使用
git remote -v进行检查,并使用git remote set-url origin [email protected]:USERNAME/REPOSITORY.git进行更改。
-
Agent admitted failure to sign错误:- 这通常意味着 ssh-agent 没有运行,或者它找不到您想要使用的密钥。
- 再次运行
eval "$(ssh-agent -s)"和ssh-add ~/.ssh/id_ed25519。