我在Ionos.com上有一个FTP服务器,它可以很好地与Filezilla配合使用。然而,当我试图通过gitlab公共运行程序(节点:最新图像(上的LFTP连接到这个FTP服务器时,我会不断收到错误,这取决于我正在做的事情:
在端口21上连接:
lftp -d -e "set ftp:ssl-allow no;set ssl:verify-certificate false;set sftp:auto-confirm no;ls;" -u 'xxx','xxx' -p 21 'xxx'
---- Resolving host address...
---- 2 addresses found: xxx, xxx
---- Connecting to xxx (xxx) port 21
**** Socket error (Network is unreachable) - reconnecting
---- Closing control socket
---- Connecting to xxx (xxx) port 21
<--- 220 FTP Server ready.
---> FEAT
<--- 500 'FEAT': command unrecognized.
---> USER xxx
<--- 331 Password required for xxx
---> PASS xxx
<--- 530 Login incorrect.
---> PWD
ls: Login failed: 530 Login incorrect.
<--- 421 Service not available, closing control connection.
---> QUIT
<--- 530 Not logged in.
---- Closing control socket
在端口22上连接:
lftp -d -e "set ftp:ssl-allow yes;set ssl:verify-certificate true;set sftp:auto-confirm yes;ls;" -u 'xxx','xxx' -p 22 'xxx'
---- Resolving host address...
---- 1 address found: xxx
---- Connecting to xxx (xxx) port 22
<--- SSH-2.0-OpenSSH_7.9p1 Debian-10+deb10u1~ui10+2
**** Peer closed connection
---- Closing control socket
最后4行循环得令人作呕。
我已经通过在Filezilla上测试凭据和服务器主机来检查它们是否良好
有人能帮我吗?谢谢
我花了一段时间才让它工作起来,这是我的解决方案:
deploy:
script:
- apt-get update -qq && apt-get install -y -qq lftp
- mkdir ~/.ssh/
- ssh-keyscan -t rsa homexxxxxxx.1and1-data.host >> ~/.ssh/known_hosts
- lftp -d -e "set ftp:ssl-allow yes;set ssl:verify-certificate true;set sftp:auto-confirm yes;ls;" -u $USERNAME,$PASSWORD -p 22 'sftp://homexxxxxxx.1and1-data.host' -e "mirror -e -R -x .git -p ./ ; quit"
only:
- master
如果没有线路ssh-keyscan -t rsa homexxxxxxx.1and1-data.host >> ~/.ssh/known_hosts
,gitlab运行程序将返回一个host key verification failed
错误。
问题是FTP需要SFTP连接。
为了使LFTP在SFTP中连接,我们需要使用";sftp://";在主机名之前。
lftp -d -e "set ftp:ssl-allow yes;set ssl:verify-certificate true;set sftp:auto-confirm yes;ls;" -u 'xxx','xxx' -p 22 'sftp://xxxx'