【问题标题】:How to set up tortoisegit to not require password using ssh如何使用 ssh 设置 tortoisegit 不需要密码
【发布时间】:2012-04-27 03:24:50
【问题描述】:

我无法让 git/tortoisegit 使用我提供的 ssh 密钥(使用 PuttyGen 创建)。在命令提示符中我收到permission denied 错误,在 TortoiseGit UI 中我收到提示输入密码。我尝试了this SO question,但如前所述,我使用 PuttyGen 创建,在加载我的密钥的情况下运行 Pageant,并配置为使用 TortoisePlink。

然后我找到this SO question,并尝试使用git目录中的ssh,我的TortoiseHG(用于Bitbucket/Mercurial)中的TortoisePlink,并且如上所述,已经尝试过TortoiseGit中的本地TortoisePlink。

哦,我确实在我的 Git 帐户以及 TortoiseGit 的 Git->Remote 部分中设置了我的 ppk

那么,我错过了什么?

【问题讨论】:

    标签: git tortoisegit


    【解决方案1】:

    检查您的原始网址是什么。

    右键单击您的项目文件夹 TortoiseGit -> Settings -> 选择Git -> Remote 并选择源条目。

    检查网址是否以ssh:// 开头,并且您的私钥已加载。

    如果网址以https:// 开头,那么它每次都会询问您的密码。

    希望这会有所帮助。

    【讨论】:

    • 这对我来说不太适用。我实际上必须删除协议。即,URL 中没有 https://ssh://
    • @beldaz:如果我尝试这样做(https://ssh:// 都不是),我得到 ... 似乎不是 git 存储库致命:无法从远程存储库读取.
    • 这个解决方案对我不起作用。我收到消息:断开连接:没有可用的受支持的身份验证方法(服务器发送:公钥)
    • @O.R.Mapper:不知道为什么会这样,抱歉 - 我只是仔细检查了一下,我的设置工作正常。我唯一能想到的是,如果您没有设置 Putty Key 字段。或者,也许您在其他地方设置了冲突的凭据......抱歉没有更有用。
    • @beldaz:我认为这是由我同时在a separate answer 中发现和描述的问题引起的。
    【解决方案2】:

    我也无法使用 github/tortoisegit 完成这项工作。在 linux 的命令行中使用 git 效果很好。然后我使用了我的用户名/密码,如下所述:

    http://www.programmoria.com/2012/02/saving-tortoisegit-password.html

    和其他地方。这不是一个真正的解决方案(抱歉),而是一种实现相同目的的解决方法:无需输入用户名/密码的自动身份验证。 _netrc 文件与私钥一样安全/不安全,私钥也将存储在您计算机上的某个位置,因此我认为这是一个可以接受的解决方案。当然欢迎对此发表评论。

    【讨论】:

    • 我认为它不如使用私钥文件安全,因为我可以用密码保护后者并且没有明文。
    • SSH 不是明文。此外,需要密码才能打开您的私钥并不比直接使用密码更容易。
    【解决方案3】:

    在身份验证方面,一些 Git 服务器有点违反直觉 (恕我直言)。例如,Github docs 说:

    所有连接都必须以“git”用户身份进行。

    因此,您必须连接到ssh://git@github.com...,而不是尝试连接到ssh://<yourname>@github.com...

    我不再被要求输入密码,TortoiseGit 现在在完成 Push 操作后显示Success

    【讨论】:

      【解决方案4】:

      您在 OpenSSH 服务器上的帐户是否知道您应该获得公钥授权?

      使用 PuTTyGen 加载您的密钥。您将在“用于粘贴到 OpenSSH 授权密钥文件的公钥”下看到一个只读文本区域。复制里面的内容。

      使用 PuTTy SSH 进入 SSH 服务器。使用编辑器打开~/.ssh/authorized_keys 文件并将复制的文本粘贴到新行并保存。 ~/.ssh 目录可能还不存在。在这种情况下,请在编辑该文件之前执行mkdir ~/.ssh

      【讨论】:

        【解决方案5】:

        我在 v1.8.4 上也遇到了同样的问题,然后我将我的 ssh 客户端切换到 plink 并且它现在可以正常工作了。 TortoiseGit 设置 -> 网络 -> SSH 客户端

        plink 与标准腻子包中的 peagent 和其他好东西一起分发

        显然在某些版本的 TortoiseGit 中存在错误(尤其是 TortoisePlink) see this answer

        【讨论】:

        • 通过使用 plink,我收到消息 fatal: 无法从远程存储库读取。请确保您拥有正确的访问权限并且存储库存在。(除非我误解了 Github Web 界面告诉我的内容,否则我确信所有这些。)
        【解决方案6】:

        我正在使用 git 2.7 和 tortoisegit 1.8.16 这是我为避免需要密码而采取的措施,它适用于我的情况

        右键单击您的项目文件夹 TortoiseGit -> 设置 选择 Git -> Remote 并选择源条目 将 url 从 https://github... 更改为 ssh://git@github...

        【讨论】:

          【解决方案7】:

          使用 Tortoise 2.2.0.0,您需要做几件事。在远程选项卡上,您可以删除已有的 http(s) 源,或者需要添加第二个,使用 ssh:// 并选中 ssh 的“推送默认”复选框,以便 Tortoise 使用它进行推送默认情况下(在我的情况下是 https 来源)。

          只有 ssh 需要指定密钥,然后当您推送时,它应该默认以您的新 ssh 源作为目的地,并且不询问您的用户名和密码。

          显然,您需要知道您的网址中有哪些用户。例如,在 Visual Studio Team Services 中,它是 VSTS 帐户的名称(不是帐户持有人!)。您可能还需要端口号。

          这就是我从头开始设置的所有内容,并且效果很好。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-12-07
            • 1970-01-01
            • 1970-01-01
            • 2015-07-30
            • 1970-01-01
            • 2019-09-26
            • 1970-01-01
            • 2012-09-10
            相关资源
            最近更新 更多