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 yes
与yes
确认。管道继续按预期进行。
从上周开始,我从部署脚本中得到了这个输出:
$ 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 集成以进行部署?