【发布时间】:2021-12-31 19:46:12
【问题描述】:
我正在尝试某些 git 操作,例如 pull、push 等,但没有一个有效:
权限被拒绝(公钥)。
致命:无法从远程存储库中读取。
请确保您拥有正确的访问权限
并且存储库存在。
我做过的事情:
-
检查远程是否是 ssh 的:
git remote -v来源 git@github.com:USERNAME/REPOSITORY.git (fetch)
来源 git@github.com:USERNAME/REPOSITORY.git(推送)
-
检查 ssh 代理是否正在运行:
eval "$(ssh-agent -s)"代理 pid 123456
-
将私钥添加到 ssh 代理:
ssh-add "path_to_private_key_file"添加的身份:“path_to_private_key_file”(email@provider.com)
-
在“https://github.com/settings/ssh/new”处将公钥添加到 Github
-
检查 ssh 连接是否正常:
ssh -T git@github.com您好,用户名!您已成功通过身份验证,但 GitHub 不提供 shell 访问权限。
【问题讨论】:
-
那么,该密钥所属的用户是否有权访问存储库?您确定存储库 URL 是正确的吗?
-
是的,用户(我)确实有权访问存储库。我只需要从 HTTPS 更改为 SSH,是的,URL 是正确的:我从存储库克隆弹出窗口中复制了它(无需手动输入)。
-
我只需要从 HTTPS 更改为 SSH ... 这是否意味着现在一切正常?
-
@torek 不。正如我们在图片中看到的那样,我已经复制了上述所有步骤,但并没有让它发挥作用。
-
并且您确定用户名(已被图像屏蔽)有权访问相关存储库?现在是时候让 GitHub 支持参与进来了。尽管您可能会先做另一件事,即运行
GIT_TRACE=1 git fetch以观察 Git 运行的 ssh 命令(如果您在 Windows 上,Git(带有 ssh 客户端)和 Windows 本身之间存在不匹配,后者附带一个 ssh 客户端)。
标签: windows git github ssh ssh-agent