将本地代码推送到远程分支报错:Permission denied (publickey). fatal: Could not read from remote repository.
确保已经添加了正确的 SSH 密钥。可以使用以下命令检查 SSH 密钥是否已经添加:
ssh -T git@github.com
如果看到消息“Hi [username]! You've successfully authenticated, but GitHub does not provide shell access.”
,则表示已成功通过 SSH 访问 GitHub。
否则,表示没有访问远程仓库的权限,可能是因为没有正确配置 SSH 密钥或没有在 Github 上将公钥添加到的帐户中。
Git的SSH公钥是用于通过SSH协议进行身份验证和授权的公钥,它允许在Git版本控制系统中访问需要身份验证的仓库。要将SSH公钥添加到GitHub账户,可以按照以下步骤进行操作:
1.生成SSH密钥对,如果已经有了SSH密钥对,可以跳过此步骤,否则,可以在终端或命令行窗口中运行以下命令生成一对SSH密钥:
ssh-keygen -t ed25519 -C "your_email@example.com"
这将生成一个新的SSH密钥对,并要求提供电子邮件地址作为注释。根据需要更改电子邮件地址。
成功生成的页面如上,并且在该目录会生成新的文件:
1.将SSH公钥添加到GitHub账户。
2.登录到你的GitHub账户,然后单击右上角的个人资料图标并选择“Settings”。
3.在左侧菜单中选择“SSH and GPG keys”(SSH和GPG密钥),然后单击“New SSH key”(新SSH密钥)按钮。
4.在“Title”字段中提供一个描述性的名称,然后将刚刚生成的SSH公钥(.pub)的内容复制到“Key”字段中。
5.最后,单击“Add SSH key”(添加SSH密钥)按钮。
验证SSH连接。打开终端或命令行窗口,并使用以下命令测试SSH连接:
ssh -T git@github.com
这将连接到GitHub并验证的SSH密钥是否已成功添加到的GitHub账户。如果一切正常,应该会看到一条消息,指示已成功通过SSH进行身份验证。
如果 ssh -T 邮箱@example.com
失败,可能有几个原因需要检查:
检查 SSH 代理是否在运行:
在运行 ssh -T 邮箱@example.com 前,确保 SSH 代理正在运行。使用以下命令检查:
eval "$(ssh-agent -s)"
检查 SSH 密钥是否被添加到代理:
使用以下命令确保 SSH 密钥已经添加到 SSH 代理中:
ssh-add -l
如果密钥没有列出,使用以下命令添加:
ssh-add ~/.ssh/你的新密钥
GitHub 是否识别 SSH 密钥:
确保你的 GitHub 帐户中包含了新生成的 SSH 密钥。在 GitHub 上的 “Settings” -> “SSH and GPG keys” 中添加公钥
检查网络连接:
确保你的网络连接正常,防火墙未阻止 SSH 连接。
使用 -v 选项进行详细调试:
ssh -v -T 邮箱@example.com
这将显示 SSH 连接的详细信息,有助于排查问题