首页 > 解决方案 > Git SSH 问题:终端工作正常,但所有 GUI 客户端都失败

问题描述

因此,我在 git 和 Github 上遇到了这个问题,当我使用终端时,事情会按预期工作,但是从 Git GUI 客户端(如 GitHub 桌面应用程序、SourceTree、Fork 等)执行任何操作给了我 权限被拒绝(公钥)问题。

ssh -T git@github.com即使在终端中尝试命令,也可以按预期工作。这是我从 Fork 获得的 Github 帐户设置的屏幕截图:如您所见,看起来甚至我的 SSH 密钥都已正确配置并且似乎已被识别。我想避免生成新的 SSH 密钥并在 GitHub 中设置它的过程,除非实际上没有其他选择。

在此处输入图像描述

标签: gitgithubssh-keyspermission-deniedpublic-key

解决方案


即使在终端中尝试 ssh -T git@github.com 之类的命令,也可以按预期工作。

仔细检查这些 GUI 客户端中用于远程存储库的 SSH URL。

应该是git@github.com:<me>/<myrepo>

正如我在这里提到的,在启动 GitHub Desktop 之前先尝试:

git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"

(假设这里是 Windows 10)

对于 Mac,请遵循“如何管理多个 SSH 密钥”并确保将您的密钥添加到 ssh-agent:

ssh-add -K ~/.ssh/_id_rsa

~/.ssh/config

Host *
  AddKeysToAgent yes
  UseKeychain yes

SSH 将在钥匙串中查找密钥,如果找到,则不会提示您输入密码。
密钥也将添加到 ssh-agent。在 MacOS 上,这将适用于 MacOS Sierra 10.12.2 或更高版本。


推荐阅读