GitLab-CI:无法再使用 lftp 进行部署

Posted

技术标签:

【中文标题】GitLab-CI:无法再使用 lftp 进行部署【英文标题】:GitLab-CI: can't deploy using lftp any more 【发布时间】:2021-10-21 08:53:45 【问题描述】:

我在 GitLab CI 中的部署脚本有问题,该脚本过去两年都可以使用。大约一周后,根 ECDSA 的自动验证不起作用(我正在使用 lftp 部署一些文件)。

这是过去管道输出的样子。

$ lftp -u $FTP_USERNAME,$FTP_PASSWORD -p 22 sftp://my.ftp.server -e "debug; set sftp:auto-confirm yes; mirror --reverse --verbose --delete public/ mount/; bye"
---- Running connect program (ssh -a -x -s -l ftp_products -p 22 my.ftp.server sftp)
---> sending a packet, length=5, type=1(INIT), id=0
<--- The authenticity of host 'my.ftp.server (xxx.xxx.xxx.xxx)' can't be established.
<--- ECDSA key fingerprint is SHA256:Z2s4NdXMJ04EfN3jm4xZ/ZwJE4E6Lj/HP8oHWzIod4M.
<--- Are you sure you want to continue connecting (yes/no)? yes

请注意,ssh 要求确认是否继续,通过命令行选项sftp:auto-confirm yesyes 确认。管道继续按预期进行。

从上周开始,我从部署脚本中得到了这个输出:

$ lftp -u $FTP_USERNAME,$FTP_PASSWORD -p 22 sftp://my.ftp.server -e "debug; set sftp:auto-confirm yes; mirror --reverse --verbose --delete public/ mount/; bye"
---- Running connect program (ssh -a -x -s -l ftp_products -p 22 my.ftp.server sftp)
---> sending a packet, length=5, type=1(INIT), id=0
The authenticity of host 'my.ftp.server (xxx.xxx.xxx.xxx)' can't be established.
<--- ECDSA key fingerprint is SHA256:Z2s4NdXMJ04EfN3jm4xZ/ZwJE4E6Lj/HP8oHWzIod4M.
**** Timeout - reconnecting
---- Disconnecting
---- Running connect program (ssh -a -x -s -l ftp_products -p 22 my.ftp.server sftp)
---> sending a packet, length=5, type=1(INIT), id=0
The authenticity of host 'my.ftp.server (xxx.xxx.xxx.xxx)' can't be established.
<--- ECDSA key fingerprint is SHA256:Z2s4NdXMJ04EfN3jm4xZ/ZwJE4E6Lj/HP8oHWzIod4M.
**** Timeout - reconnecting
---- Disconnecting

请注意,ssh 甚至不会提示输入yes|no,因此自动确认指纹的命令行选项无效。

以前有没有人遇到过这个问题并有解决方案?

【问题讨论】:

【参考方案1】:

我在我的 GitLab CI 中使用 node docker 映像时开始遇到同样的问题,它在后台使用 Debian。我只是使用node,这意味着实际上它是node:latest,很可能使用最新的Debian版本。

我在 Debian 网站上发现以下 bug report 提到 lftp 和 Debian Bullseye 版本存在问题,实际上没有显示 SSH 提示。 Debian Buster 运行良好。

我把图片切换到node:bullseye,这个问题依然存在。然后我将图像更改为旧的node:buster,问题就消失了。

我建议调查您的图像以确定它基于什么操作系统。如果那也是 Debian,请尝试使用版本。希望这会很快得到解决。

【讨论】:

以上是关于GitLab-CI:无法再使用 lftp 进行部署的主要内容,如果未能解决你的问题,请参考以下文章

如何将 GitLab-Ci 与 Azure Kubernetes + Kubectl + ACR 集成以进行部署?

gitlab+gitlab-ci+docker自动化部署

如何使用 AWS CodeDeploy/CodePipeline/S3 将 Gitlab-Ci 部署到 EC2

如何利用Gitlab-ci持续部署到远程机器?

故障公告新版博客后台部署时的配置问题引发故障

Linux下LFTP使用示例