我有一个SSH访问我的网络托管,它适用于PuTTY(我只需要输入我的域名,用户名和密码),但是使用SourceTree似乎更复杂。
虽然PuTTY有一个“主机名”,“用户名”和“密码”字段,但SourceTree不需要特殊文件“.ppk
”?!
我需要通过SSH将SourceTree连接到我的网络托管,原因很明显,我想用它来推送到我的网络托管上的远程存储库。
那么如何从我的域/用户名/密码中获取生成的.ppk
文件?任何帮助非常感谢!
PS:我注意到他们通过提供两个简单的字段(“用户名”和“密码”)非常容易地连接到BitBucket,并且使连接到第三方SSH非常困难...这是故意的吗?试图阻止竞争?!
将SourceTree连接到任何SSH有两种方法。
最简单的方法是使用您的虚拟主机提供商提供的域名,用户名和密码:
只需使用以下语法:ssh://[email protected]/
- 每当您推送到SSH时,SourceTree将提示您输入密码:
如果您选中Remember password
复选框,则会保存您的密码,系统不会再次提示您输入密码。您可以稍后通过Tools > Options > Authentication
编辑或删除存储的密码,如下图所示:
注意:在我的情况下(1和1共享主机),用户名和密码都与我的主FTP帐户相同。
更复杂的方法是使用私钥/公钥对:
这意味着使用“PuTTY Key Generator”生成两个键(一个“私有”和一个“public”)(在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软件(777
)将其设置为Right-click on "authorized_keys" > File permissions
:
无需任何命令行。
我不得不从Patoshi's answer做一些额外的工作。
在工具>选项>常规> SSH客户端配置中,我必须将其指向id_rsa密钥,并选择OpenSSH作为SSH客户端(默认情况下选择Putty / PLink)。
然后每次启动SourceTree时,都会出现一个提示,要求密码短语解密id_rsa密钥(假设您使用密码创建密码来加密它)。这看起来像这样:
那时,我可以进入克隆页面,从我的Gitlab项目粘贴SSH地址([email protected]:Blah / Whatever.git)并克隆它。没有额外的用户名或密码提示(因为它使用SSH密钥)。