git - Git SSH 问题:终端工作正常,但所有 GUI 客户端都失败
问题描述
因此,我在 git 和 Github 上遇到了这个问题,当我使用终端时,事情会按预期工作,但是从 Git GUI 客户端(如 GitHub 桌面应用程序、SourceTree、Fork 等)执行任何操作给了我 权限被拒绝(公钥)问题。
ssh -T git@github.com
即使在终端中尝试命令,也可以按预期工作。这是我从 Fork 获得的 Github 帐户设置的屏幕截图:如您所见,看起来甚至我的 SSH 密钥都已正确配置并且似乎已被识别。我想避免生成新的 SSH 密钥并在 GitHub 中设置它的过程,除非实际上没有其他选择。
解决方案
即使在终端中尝试 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 或更高版本。
推荐阅读
- java - Spring jms 在处理和确认之前将消息缓冲成批处理
- python - 如何将句子放在顶部?
- entity-framework - 如何使用 Azure 存储和实体框架上传文件
- javascript - 如何将查询 graphql 转换为 json 对象?
- python - 如何在 TF2.0 中用 GradientTape 替换 Keras 的 gradients() 函数?
- php - 多站点管理员在子目录中安装“ERR_TOO_MANY_REDIRECTS”
- postgresql - 如何使用 .bat 文件执行 postgreSql 查询
- pyspark - PySpark 超时异常
- asp.net-core - 从服务中获取类类型的可靠方法,通过 .Net Core DI 实例化
- python - 过去 2 个月的平均值