1

我使用 lftp 将文件从 Cloud 9 IDE 传输到远程主机。最近,它似乎停止了工作。我已经向主人提出了这个问题,他们认为它工作正常。事实上,我可以通过 FileZilla 和一个简单的浏览器连接到 ftp 主机。我已经用 Cloud 9 提出了它,但也没有运气。

我正在从命令行使用以下命令传输文件:

lftp -e "debug; set ssl:verify-certificate no; put ./res/test.txt -o test.txt; bye" -u abcd,xyz ftp.example.com

(这set ssl:verify-certificate no是不久前的补充,以克服突然出现的类似连接问题......我也试过没有它......结果相同)

我在 C9 中发现的是,它永远在尝试连接:

---- Connecting to ftp.example.com (xx.xxx.xx.xxx) port 21
**** Socket error (Connection timed out) - reconnecting
---- Closing control socket
---- Connecting to ftp.example.com (xx.xxx.xx.xxx) port 21
**** Socket error (Connection timed out) - reconnecting
---- Closing control socket
---- Connecting to ftp.example.com (xx.xxx.xx.xxx) port 21

可能很难提供任何帮助,但有没有人有任何想法至少可以帮助我诊断?还有其他选择吗?

谢谢。

4

3 回答 3

4

在我的情况下,lftp 没有指示 ssh 明确使用“密码身份验证”,它一直在等待来自键盘的密码

<--- debug1: Authentications that can continue: keyboard-interactive,password
<--- debug1: Next authentication method: keyboard-interactive 
<--- Password authentication

在将 sftp:connect-program 设置为之后,"ssh -oPreferredAuthentications=password -a -x"我摆脱了这个问题。

lftp << !
  set sftp:connect-program "ssh -oPreferredAuthentications=password -a -x"
  open -u $USER --env-password $PROTOCOL://$HOST
  mirror -vvv -c --only-missing -P 600 $SRC_FOLDER /dbfs/mnt/$HOST/$DST_FOLDER
!

-v如果您仍然有问题,那么您可以启用调试并通过传递到ssh-d来查看出了什么问题open

lftp << !
  set sftp:connect-program "ssh -a -x -v"
  open -d -u $USER --env-password $PROTOCOL://$HOST
  ls
!
于 2019-03-11T11:51:41.263 回答
1

在将 Ubuntu 升级到 16.04 以使用 TLS 1.2 后,我遇到了这个问题。发出的第一个命令,无论是 cd 还是 ls 都会导致 [Connecting...] 挂起。

事实证明,他们的 Comcast 路由器有一个端口转发规则,用于将 tcp 端口 21(21 是 ftp)传入 holter 监控服务器。我禁用了该规则,问题立即消失了。

于 2020-08-28T17:02:18.830 回答
1

这也可能是由 和 中的不匹配或权限问题引起~/.ssh/known_hosts~./ssh/authorized_keys

在更正与路由器中的端口转发规则的冲突后,其中一位用户再次发生这种情况。我通过复制我的(工作)~/.ssh/authorized_keys~/.ssh/known_hosts她的并设置权限来修复它。

于 2020-08-28T17:05:52.400 回答