如何在 git-ftp 客户端上使用 sftp?

How do I use sftp on git-ftp client?

我正在尝试使用 jenkins 自动执行 sftp 上传和替换,以便 sftp 服务器上的文件夹等于 git 存储库。这是使用 sftp 托管在 openshift 运行 nginx 上,它只支持 ftp 使用我已经使用他们的 rhc 客户端生成的 ssh 密钥。我已经能够使用 filezilla 使用 https://blog.openshift.com/using-filezilla-and-sftp-on-windows-with-openshift/ 上的说明轻松连接到 sftp。

我发现最有用和最省时的方法是使用名为 git-ftp 的工具。

对于 ftp 使用用户名、密码和 ftp 服务器域的步骤非常先进。我正在努力让它使用我的 ssh 密钥执行 sftp。 这是我找到的一个站点,其中包含有关要使用的命令的最佳文档。 参考:http://manpages.ubuntu.com/manpages/trusty/man1/git-ftp.1.html.

我按照本指南进行了 Jenkins 自动化设置 https://www.savjee.be/2016/02/Use-Jenkins-and-git-ftp-to-deploy-website-to-shared-webhosting/。但是,这并没有显示使用 sftp.

的命令

我用 https://tohin.wordpress.com/2014/02/11/git-and-sftp/ 尝试了几个不同的命令,但运气不佳。

据说这适用于 ftp 仅提供用户名、密码和 ftp 服务器:

git ftp init --user USERNAME --passwd PASSWORD ftp://YOUR-FTP-SERVER-ADDRESS/path/to/website/

我已经将我的调整为:

git ftp init -u <openshiftsshtoken> --sftp-key ~/.ssh/id_rsa  sftp://YOUR-FTP-SERVER-ADDRESS/app-root/data/html/<foldertouploadto> 

但它给我带来了一些错误。

我想在初始化并确保 sftp 正常工作后执行 git ftp 推送。例如。

git ftp push -u <openshiftsshtoken> --sftp-key ~/.ssh/id_rsa  sftp://YOUR-FTP-SERVER-ADDRESS/app-root/data/html/<foldertouploadto>

有人可以指出我的错误吗?

您可以尝试输入 sftp protocol 以及 port:22

git ftp init --user USERNAME --passwd PASSWORD sftp://domain.com:22/public_html/path/to/website/

过去在 Git-ftp 中使用 SFTP 时遇到过几个问题。你可能会遇到其中的一个或几个。

  1. 您需要提供带--key选项的SSH私钥。您正在使用不同的选项。还要确保您也有一个 public 密钥。

  2. SFTP 默认采用服务器上的绝对路径。如果 /app-root 不在您服务器的根目录中,而是在您用户的主目录中,则尝试 URL sftp://YOUR-FTP-SERVER-ADDRESS/~/app-root/...。我添加了 ~/.

  3. 最后,如果您没有像 Curl 期望的那样在已知主机文件中拥有服务器指纹,那么您需要添加它或使用 --insecure flag.

最后,这里以current manual为例:

git ftp init -u "john" --key "$HOME/.ssh/id_rsa" "sftp://example.com/~/public_html"

首先尝试 --vv 参数以显示确切的错误如何?

git ftp init -u <openshiftsshtoken> --sftp-key ~/.ssh/id_rsa  sftp://YOUR-FTP-SERVER-ADDRESS/app-root/data/html/<foldertouploadto> -vv