【问题标题】:SourceTree on Windows: How to connect to SSH?Windows 上的 SourceTree:如何连接到 SSH?
【发布时间】:2013-07-22 14:38:20
【问题描述】:

我可以通过 SSH 访问我的虚拟主机,它与 PuTTY 配合使用效果很好(我只需要输入我的域、用户名和密码),但使用 SourceTree 似乎要复杂得多。

虽然 PuTTY 有一个“主机名”、“用户名”和“密码”字段,但 SourceTree 没有并且需要一个特殊文件“.ppk”?!

我需要通过 SSH 将 SourceTree 连接到我的虚拟主机,原因很明显,我想使用它来推送到位于我的虚拟主机上的远程存储库。

那么我如何获得从我的域/用户名/密码生成的.ppk 文件?非常感谢任何帮助!

PS:我注意到他们通过提供两个简单的字段“用户名”和“密码”使连接到 BitBucket 变得异常容易,并且使连接到第三方 SSH 变得异常困难。 ..这是故意阻止竞争吗?!

【问题讨论】:

    标签: windows git ssh putty atlassian-sourcetree


    【解决方案1】:

    有两种方法可以将 SourceTree 连接到任何 SSH。

    1:最简单的方法

    最简单的方法是使用您的虚拟主机提供商提供的域名、用户名和密码:

    只需使用以下语法:ssh://username@example.com/ – SourceTree 将在您推送到该 SSH 时提示您输入密码:

    如果您选中Remember password 复选框,您的密码将被保存,并且不会再次提示您输入密码。您可以稍后通过转到Tools > Options > Authentication 来编辑或删除存储的密码,如下图所示:

    注意:在我的情况下(1&1 共享主机),用户名和密码都与我的主 FTP 帐户相同。

    2:更复杂的方式

    更复杂的方法是使用私钥/公钥对:

    这意味着使用“PuTTY Key Generator”(在 SourceTree 中转到 Tools > Create or Import SSH Keys)生成两个密钥(一个“私有”和一个“公共”)。

    生成后,将私钥保存到 .ppk 文件中,并将其加载到 SourceTree (Tools > Create or Import SSH Keys > Load) 中。它还没有结束:现在您必须将公钥添加到您的服务器。为此,请将其添加到您的 Web 服务器上的以下文件中:/.ssh/authorized_keys

    如果此文件不存在,请将您的公钥保存到名为 authorized_keys 的文件中,然后通过 FTP 将其上传到您的服务器。您必须将它上传到位于根目录的名为/.ssh/ 的目录中(如果它不存在,只需创建它)。

    注意:确保使用您的主机帐户的 FTP 帐户。如果不起作用,请调整authorized_keys文件的权限(chmod)并使用您的FTP软件(Right-click on "authorized_keys" > File permissions)将其设置为777

    不需要任何命令行。

    【讨论】:

    • 我在哪里输入这个? ssh://username@example.com/
    • @OZZIE 在Repository > Repository Settings > Add > URL/Path
    • 是否可以以某种方式使用 rsa-key 进行连接?我不允许添加新密钥
    • @Community 这也是这个问题的答案吗? stackoverflow.com/questions/38291364/…
    • 费了一番周折之后,我发现简单的方法(这对大多数用户来说确实是最方便的方法)只有在您首先选择 plink 时才有效。如果您碰巧选择了 OpenSSH(这是我做的第一件事),那么您永远不会被提示输入密码。
    【解决方案2】:

    我必须从Patoshi's answer 做一些额外的工作。

    在工具 > 选项 > 常规 > SSH 客户端配置中,我必须将其指向 id_rsa 密钥,并选择 OpenSSH 作为 SSH 客户端(默认选择 Putty/PLink)。

    然后每次启动 SourceTree 时,都会出现一个提示,要求输入密码以解密 id_rsa 密钥(假设您使用密码创建它来加密它)。这看起来像这样:

    那时,我可以进入克隆页面,从我的 Gitlab 项目 (git@localgit.local:Blah/Whatever.git) 中粘贴 SSH 地址并克隆它。没有额外的用户名或密码提示(因为它使用 SSH 密钥)。

    【讨论】:

    • 另一个答案让我意识到在导出(我已经有 openssh 密钥,所以不需要导出)和导入时我必须使用 OpenSSH 而不是 Putty。您的回答也是如此,但不是粗体,所以我没有意识到。
    • 工作,默认的腻子选项是不导入或找不到我的 id_rsa 文件的原因。谢谢
    【解决方案3】:

    我在让 SourceTree 与 gitlab 上的现有 git 存储库一起工作时遇到了一些麻烦。我还必须弄清楚为什么它没有连接,因为我正在使用 puttygen 生成密钥。

    确保在生成密钥后将其导出为 OpenSSH 格式

    您将此文件作为文件放在您的 c:\user\MYUSERNAME.ssh 文件夹中:

    • id_rsa
    • id_rsa.pub

    id_rsa 是私钥文件,.pub 是您粘贴到其他应用程序(在我的例子中是 gitlab)中的公钥文件。

    【讨论】:

      【解决方案4】:
      1. 生成 SSH 密钥,私有和公共
      • 源代码树 > 工具 > 创建或导入 SSH 密钥
      1. 腻子
      • 点击生成
      • 将公钥保存在 .ssh 文件夹下
      • 将私钥保存在 .ssh 文件夹下
      1. 将私钥添加到 Pageant,在后台运行
      2. 使用 SSH 密钥克隆 git 项目

      【讨论】:

        猜你喜欢
        • 2013-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-09
        • 2017-11-06
        • 2014-08-26
        • 2011-06-01
        • 1970-01-01
        相关资源
        最近更新 更多