30

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

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

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

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

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

4

4 回答 4

26

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

1:最简单的方法

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

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

SourceTree SSH 密码提示

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

SourceTree Windows 身份验证面板

注意:在我的情况下(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) 并将其设置为777使用您的 FTP 软件 ( Right-click on "authorized_keys" > File permissions):

FileZilla FTP 客户端更改文件权限

Windows 上的 FileZilla FTP 客户端 - 设置 chmod

不需要任何命令行。

于 2013-08-05T15:42:45.940 回答
25

我不得不从Patoshi 的回答中做一些额外的工作。

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

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

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

于 2017-12-21T17:58:58.463 回答
9

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

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

在此处输入图像描述

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

  • id_rsa
  • id_rsa.pub

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

于 2016-09-14T20:05:29.820 回答
0
  1. 生成 SSH 密钥,私有和公共
  • 源代码树 > 工具 > 创建或导入 SSH 密钥
  1. 油灰
  • 点击生成
  • 将公钥保存在 .ssh 文件夹下
  • 将私钥保存在 .ssh 文件夹下
  1. 将私钥添加到选美,在后台运行
  2. 使用 SSH 密钥克隆 git 项目
于 2020-09-25T09:16:55.900 回答