【问题标题】:SourceTree on macOS keeps asking for SSH key password, or hangs if password is stored in keychainmacOS 上的 SourceTree 不断询问 SSH 密钥密码,如果密码存储在钥匙串中,则挂起
【发布时间】:2020-09-13 10:57:16
【问题描述】:

多年来,我一直在我的 Mac 上愉快地使用 SourceTree,并且很少遇到问题。几周前更新 macOS 后,它突然完全停止工作。每当我尝试克隆/获取/推送/拉取/任何东西到 任何 我的 Git 存储库时,SourceTree 要么

  1. 在我输入 SSH 密钥密码后立即一遍又一遍地询问(如果我没有将其保存在钥匙串中),或者
  2. 如果密码存储在钥匙串中,则只会在进度窗口中永久挂起。

这不是存储库的问题。 Github 也发生了这种情况,具有与以前完全相同的存储库和设置。密钥有 chmod 400,和以前一样,它是默认密钥 ~/.ssh/id_rsa。尝试使用 SourceTree 和 System Git 中的嵌入式 Git,但无济于事。我在此期间切换到的另一个应用程序正常运行。

我不记得究竟是哪个 macOS 更新导致了这些问题,但我现在使用的是最新的 macOS Catalina 10.15.4 和 SourceTree 4.0.1。由于另一个问题,我将磁盘完全擦干净并从头开始重新安装所有内容,但它仍然无法正常工作。 我找不到有关阻止 SourceTree 访问密钥本身的新访问限制的任何信息,或者如果是这种情况,我如何允许访问。这让我发疯了,同时我已经切换到另一个应用程序,但如果可以的话,我真的很想继续使用 SourceTree。

编辑:当我在 macOS 上使用 SourceTree 时,我的所有存储库都受到此问题的影响。所有 repos 也被其他人使用,当我使用另一个应用程序时,它也适用于我的 Mac。即使是我另一台笔记本电脑上的 Windows 版 SourceTree,所有这些都使用相同的密钥。

【问题讨论】:

  • 如果它可能有帮助,当它发生在我身上时,我会删除 Tools->Options->Authentications 中的所有用户,以便当您拉取或执行任何需要身份验证的操作时,系统会要求您提供“从头开始”,插入后就可以正常工作了。
  • 您是否尝试过生成新密钥?是否有其他人在访问该仓库时遇到同样的问题?
  • 感谢您的意见!第一个主题:我没有身份验证(我猜它们在 macOS 应用程序中被称为帐户)。我正在使用带有默认 SSH 密钥的普通 SSH 身份验证。第二个话题:我刚才尝试生成一个新密钥,也不起作用。大约有十几个其他开发人员也可以毫无问题地访问存储库(尽管没有人拥有与我相同的硬件/软件组合),而我尝试过的另一个应用程序仍然可以使用旧密钥在所有存储库上运行。我什至在同一个 repo 上使用具有相同密钥的 SourceTree for Windows 并且它可以工作......只有在 mac 上它才会拒绝。

标签: git macos atlassian-sourcetree


【解决方案1】:

感谢您的帮助和 cmets。原来 SourceTree 没有将服务器的指纹添加到 ~/.ssh/known_hosts 文件中,并且静默失败。

简单修复 - 在命令行导航到您的 repo 文件夹并运行一个简单的 git 命令,例如:

git fetch origin --dry-run

由于是空运行,什么都不会发生,但是 git 可执行文件会询问连接到服务器是否正常,并将其添加到 known_hosts 文件中。

【讨论】:

    【解决方案2】:

    在我将其添加到我的 .ssh/config 之前,没有任何效果:

    UseKeychain yes
    

    【讨论】:

      【解决方案3】:

      几个月前我遇到了类似的问题,这对我有用。 * 打开钥匙串访问 * 在登录/密码部分下查找 SourceTree 应用程序密码 * 选择密码,右键删除密码

      这一次,当我输入 SourceTree 的密码时,应用程序毫无问题地接受了密码并保存到钥匙串中。

      我做的几件事可能首先导致了这个问题。我更新了我的 macOS。大约在同一时间,我还在 Github 中启用了两因素身份验证。也许钥匙串中保存的密码与我在更新后提供的密码之间存在冲突导致问题。希望这会有所帮助。

      【讨论】:

      • 尝试从钥匙串中删除它,不幸的是对我不起作用。与以前相同的行为,循环密码请求或挂起,一旦我告诉它再次将密码存储在钥匙串中。顺便说一句,我没有使用 iCloud 钥匙串,所以我确定钥匙确实被删除了。它发生在 Github 和我公司的自托管 Gitlab 上......
      猜你喜欢
      • 2014-11-20
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      相关资源
      最近更新 更多