putty - TortoiseGit 在无密码登录设置中要求输入密码

标签 putty private-key tortoisegit

经过几个月不间断的无密码工作,我的 TortoiseGit 在推/拉时开始要求我输入一些 Remote 的密码。我正在寻找解决方案来解决这个问题,因为这会让我发疯。

下划线 :我想继续使用基于 SSH 的无密码登录,因此任何假设的解决方案 adding password to URL或永久storing password in TortoiseGit configuration对我来说不是一个选择。

到目前为止我发现了什么:

  • 我的问题与GitHub无关;我不在 TortoiseGit 中使用它,它发生在其他 Remote 上。
  • 我确实有 SSH,而不是 HTTPS,地址作为 repo 的 URL,但我没有 git clone - 里面的东西。
  • 我可以使用 Netbeans 推/拉相同的存储库(并且我的 Netbeans 已选中 Select Configured Git Repository Location 选项,因此它使用相同的远程配置)。
  • 我无法使用 Git GUI 推/拉远程,原因相同:要求输入用户密码。
  • 这与特定的系统或机器(SSH key )无关,因为它发生在我的工作计算机(32 位 Win 7)和家用计算机(64 位 Win 7)上。两者当然使用不同的 SSH key (请参阅对 this answer 的评论,该评论声称该问题与 32 位版本的 Windows 相关;这不是真的,它也发生在 64 位 Windows 上)。
  • 存储库,发生这种情况,不是空的——我听说甚至受到个人影响,有时 TortoiseGit 会得到 wako 并要求在无密码登录远程上输入密码,直到该远程为空。
  • 这与特定的远程无关——TortoiseGit 工作正常,无需在某些存储库(即 BitBucket)上要求密码,但在其他存储库(即在本地开发网络中)要求密码“死亡”。

  • 更糟糕的是,在某些 Remote 上,我家用计算机上的 TortoiseGit 出现故障,要求输入密码,而从家用计算机访问的相同 Remote 工作正常。反之亦然。我使用相同的步骤将两台机器设置为无密码登录;只有 SSH key 不同。

    到目前为止我所做的事情(并没有解决问题):
  • 将 SSH 客户端 ( TortoiseGit -> Settings -> Network ) 更改为 Git\bin\ssh.exe (如 here 中所建议)和到 C:\Program Files\PuTTy\plink.exe .
  • 使用 credential helper没有帮助,我听说它仅适用于 HTTPS,不适用于 SSL。
  • Downloading git-credential-wincred.exe 并将其放入 Git for Windows/msysgit 文件夹也无济于事;我已经在那里了(不同的版本/文件大小;两者都检查过)。
  • 这个问题显然与要求用户密码有关,所以 git did not exit cleanly (exit code 128)除了缺少密码和给出的大多数解决方案之外,它没有任何其他来源 here ,比如崩溃的 git、锁定的文件、丢失的用户电子邮件对我来说不是解决方案。

  • 好的,这是我到达的最远点。而且还是什么都没有。任何人都可以想出一些新的东西,我应该尝试解决这个问题吗?

    最佳答案

    我确认“存储密码”或 _netrc文件或任何凭证助手仅用于 https url,与 SSH 无关。

    通常的调试 ssh 步骤适用,从 making sure that %HOME% is defined when TortoiseGit is launched 开始, 和 %HOME%/.ssh存在,并包含默认键 id_rsaid_rsa.pub .

    在 git bash session 中,您可以执行 ssh -Tvvv yourRemoteServer查看调试错误消息序列是什么,如 explained here .

    您还可以检查 GIT_TRACE=2 git push test master 的结果, 查看问题是否仅限于 TortoiseGit 以及详细输出是否留下任何线索 ( see here )。
    试试 switching ssh client between putty and openssh看看 TortoiseGit 是否更适合其中一个。

    关于putty - TortoiseGit 在无密码登录设置中要求输入密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20143260/

    相关文章:

    linux - ssh & 脚本问题

    php - 如何允许后台进程在 session 终止后继续存在?

    c# - 为什么出现错误 X.509 证书中不存在私钥

    git - Tortoise Git 中 "Force"和 "Override branch if exists"的区别

    putty - 服务器意外关闭 Windows 上的网络连接

    java - 线程 "main"java.lang.NoClassDefFoundError : MyFile Caused by: java. lang.ClassNotFoundException 中出现异常:

    java - 如何在 java 中解密受密码保护的 RSA key ?

    c# - 从 BouncyCaSTLe X509 证书获取私钥? C#

    tortoisegit - TortoiseGit 日志图中分支线上的方形图标是什么意思?

    git - 使用 TortoiseGit 推送到远程 Git 存储库时出现身份验证错误