关于向您的账户添加 SSH 密钥
您可以使用 SSH(安全外壳协议)访问和写入 GitHub 上的仓库数据。通过 SSH 连接时,您会使用本地机器上的私钥文件进行身份验证。更多信息请参阅 关于 SSH。
您还可以使用 SSH 对提交和标签进行签名。有关提交签名的更多信息,请参阅 关于提交签名验证。
生成 SSH 密钥对后,必须将公钥添加到 GitHub.com,以便为您的账户启用 SSH 访问。
先决条件
在将新 SSH 密钥添加到 GitHub.com 上的账户之前,请完成以下步骤。
- 检查是否已有 SSH 密钥。更多信息请参阅 检查现有 SSH 密钥。
- 生成新的 SSH 密钥并将其添加到机器的 SSH 代理。更多信息请参阅 生成新的 SSH 密钥并将其添加到 ssh-agent。
将新 SSH 密钥添加到您的账户
您可以添加 SSH 密钥并将其用于身份验证、提交签名,或两者兼用。如果要将同一 SSH 密钥同时用于身份验证和签名,需要上传两次。
在 GitHub.com 上将新的 SSH 身份验证密钥添加到您的账户后,您可以重新配置任何本地仓库以使用 SSH。更多信息请参阅 管理远程仓库。
注意
GitHub 在 2022 年 3 月 15 日通过淘汰旧的、不安全的密钥类型来提升安全性。
自该日期起,DSA 密钥(ssh-dss)不再受支持。您无法向 GitHub 个人账户添加新的 DSA 密钥。
在 2021 年 11 月 2 日之前生成的 RSA 密钥(ssh-rsa)valid_after 可以继续使用任何签名算法。该日期之后生成的 RSA 密钥必须使用 SHA-2 签名算法。某些旧客户端可能需要升级才能使用 SHA-2 签名。
-
将 SSH 公钥复制到剪贴板。
如果您的 SSH 公钥文件名称与示例代码不同,请将文件名修改为与您当前的设置相匹配。复制密钥时,请勿添加任何换行或空白字符。
$ pbcopy < ~/.ssh/id_ed25519.pub # Copies the contents of the id_ed25519.pub file to your clipboard提示
如果
pbcopy不可用,您可以定位隐藏的.ssh文件夹,在您喜欢的文本编辑器中打开该文件并复制其内容到剪贴板。$ clip < ~/.ssh/id_ed25519.pub # Copies the contents of the id_ed25519.pub file to your clipboard注意
- 在 Windows Subsystem for Linux(WSL)中,您可以使用
clip.exe。如果clip不可用,同样可以定位隐藏的.ssh文件夹,使用喜欢的编辑器打开并复制。 - 在使用 Windows Terminal 的较新 Windows 版本,或任何使用 PowerShell 命令行的环境中,您可能会收到
ParseError,提示The '<' operator is reserved for future use.。此时请使用以下替代的clip命令:
$ cat ~/.ssh/id_ed25519.pub | clip # Copies the contents of the id_ed25519.pub file to your clipboard$ cat ~/.ssh/id_ed25519.pub # Then select and copy the contents of the id_ed25519.pub file # displayed in the terminal to your clipboard提示
或者,您可以定位隐藏的
.ssh文件夹,使用喜欢的文本编辑器打开并复制到剪贴板。 - 在 Windows Subsystem for Linux(WSL)中,您可以使用
-
在 GitHub 任意页面的右上角,点击您的头像,然后点击 设置。
-
在侧边栏的“Access”部分,点击 SSH 和 GPG 密钥。
-
点击 新建 SSH 密钥 或 添加 SSH 密钥。
-
在 “标题”(Title)字段中,为新密钥添加一个描述性标签。例如,如果您在使用个人笔记本电脑,可以将其命名为 “个人笔记本”。
-
选择密钥类型:身份验证或签名。有关提交签名的更多信息,请参阅 关于提交签名验证。
-
在 “密钥”(Key)字段中,粘贴您的公钥。
-
点击 添加 SSH 密钥。
-
如果出现提示,请确认您对 GitHub 账户的访问权限。更多信息请参阅 Sudo 模式。
注意
要了解更多关于 GitHub CLI 的信息,请参阅 关于 GitHub CLI。
在使用 GitHub CLI 将 SSH 密钥添加到您的账户之前,必须先对 GitHub CLI 进行身份验证。更多信息请参阅 GitHub CLI 文档中的 gh auth login。
要向您的 GitHub 账户添加 SSH 密钥,请使用 ssh-key add 子命令并指定您的公钥。对于身份验证密钥,如果系统提示请求额外的作用域,请按照命令行中的说明进行操作。
gh ssh-key add KEY-FILE --type {authentication|signing}
若要为新密钥添加标题,请使用 -t 或 --title 标志。
gh ssh-key add KEY-FILE --title "personal laptop"
如果您是按照 生成新 SSH 密钥并将其添加到 ssh-agent 中的说明生成的 SSH 密钥,可使用以下命令将密钥添加到账户。
gh ssh-key add ~/.ssh/id_ed25519.pub --type signing