Win 8 SFTP 驱动器在完美运行六个月后突然无法工作。可以正常登录控制台。**TEMP** 帐户可以正常使用 SFTP

Win 8 SFTP 驱动器在完美运行六个月后突然无法工作。可以正常登录控制台。**TEMP** 帐户可以正常使用 SFTP

更新:我按照 Digital Ocean 支持推荐的步骤(在底部)进行了操作,并发布了后续内容:https://unix.stackexchange.com/questions/179163/how-to-get-sftp-on-ubuntu-working-again-should-i-try-to-fix-it-or-reinstall


自从创建 Digital Ocean 服务器以来,我第一次在尝试使用 SFTP Net Drive(这样我就可以将其映射为 Windows 计算机上的带字母的驱动器)、WebDrive(以及 SFTP Net Drive 竞争对手)或 FileZilla 连接到我的服务器时收到“连接被拒绝”错误。我可以正常连接到控制台。

我还创建了一个新的临时帐户,它可以通过 sftp 顺利地连接到同一台机器。

我已经通过服务器和 Windows 机器更新并重新启动,并重新安装了 SFTP Net Drive,但仍然失败。

两台机器上的配置都没有任何变化。我是 Ubuntu/Bash 新手。我一直在 .bashrc 中尝试别名和类似别名的函数(例如这里这里这里, 和这里,但我无法想象这会影响到这一点。我没有改变任何完全没有其他配置。我还不知道该怎么做。

在 SFTP Net Drive Free 上,这是主屏幕:

截屏

当我尝试连接时:

截屏

根据他们的网站, 这意味着SSH_ERROR_CONNECTION_CLOSED

详细配置(同样,自 8 月以来没有变化):

截屏

在 WebDrive 上,也是同样的情况:“Winsock 错误:WSAECONNREFUSED (10061)”。此消息对于每一个可能的选择:

截屏

尝试通过 FileZilla 使用非安全 FTP 进行连接(我将我的真实 IP 更改为 123.45.67.891。如果它不是有效的 IP,请原谅我):

Status: Connecting to 123.45.67.891:22...
Status: Connection established, waiting for welcome message...
Response: SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
Error: Cannot establish FTP connection to an SFTP server. Please select proper protocol.
Error: Critical error: Could not connect to server

我的设置:

截屏

使用 SFTP:

Status: Connecting to 123.45.67.891...
Response: fzSftp started
Command: open "[email protected]" 22
Command: Pass: ************
Status: Connected to 123.45.67.891
Error: Connection timed out
Error: Could not connect to server

它挂在“已连接到 123.45.67.891”行,然后超时。它实际上从未连接。

使用带有“需要通过 TLS 显式 FTP”的 FTP:

Status: Connecting to 123.45.67.891:990...
Status: Connection attempt failed with "ECONNREFUSED - Connection refused by server".
Error: Could not connect to server

与“implicit”结果相同


$ ping 123.45.67.891

Pinging 123.45.67.891 with 32 bytes of data:
Reply from 123.45.67.891: bytes=32 time=21ms TTL=251
Reply from 123.45.67.891: bytes=32 time=24ms TTL=251
Reply from 123.45.67.891: bytes=32 time=26ms TTL=251
Reply from 123.45.67.891: bytes=32 time=17ms TTL=251

Ping statistics for 123.45.67.891:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 17ms, Maximum = 26ms, Average = 22ms

$ tracert 123.45.67.891

Tracing route to originaldjangster.com [123.45.67.891]
over a maximum of 30 hops:

1 <1 ms <1 ms <1 ms Wireless_Broadband_Router.home [192.168.1.1]
2 7 ms 7 ms 8 ms L100.CMDNNJ-VFTTP-20.verizon-gni.net [71.188.123.1]
3 12 ms 11 ms 14 ms G0-1-3-2.CMDNNJ-LCR-22.verizon-gni.net [100.41.201.86]
4 33 ms 12 ms 16 ms xe-9-1-2-0.NY5030-BB-RTR2.verizon-gni.net [130.81.209.144]
5 * * * Request timed out.
6 12 ms 16 ms 17 ms 2.ae0.XT2.NYC4.ALTER.NET [140.222.227.27]
7 23 ms 20 ms 24 ms TenGigE-7-0-3.GW5.NYC4.ALTER.NET [152.63.18.190]
8 12 ms 17 ms 15 ms teliasonera-gw.customer.alter.net [152.179.163.178]
9 14 ms 17 ms 18 ms nyk-b6-link.telia.net [213.155.131.117]
10 16 ms 16 ms 17 ms digitalocean-ic-306491-nyk-b5.c.telia.net [62.115.44.242]
11 20 ms 20 ms 11 ms 192.241.164.242
12 26 ms 16 ms 17 ms originaldjangster.com [123.45.67.891]

在与 Digital Ocean 交谈后,他们说他们无法复制任何东西,并且不允许他们直接使用我为临时创建的临时帐户登录(也不允许使用带有临时密码的实际帐户登录)。他们建议我尝试这些(用他们的话来说,“非常过时”)的步骤

我会的,我会用结果更新这个问题。但我很累,我需要去学校接孩子。

我写的内容中有什么线索吗?我完全被困住了,我需要做的一切都是通过 SFTP。

这是全力支持线程与 Digital Ocean 合作。

有人告诉我,SFTP 要么是美好的,要么是噩梦。现在我想我明白了。

答案1

我通读了帖子,发现你混合使用了 FTP、FTP/S 和 SFTP 示例,它们都试图连接到同一端口上的同一服务器。请务必记住,SFTP、FTP/S 和 FTP 都非常不同,并且在不同的端口上运行。

SFTP(基于 SSH 加密的安全文件传输协议)通常在端口 22 上运行,与 FTP/S 不同。FTP/S(基于 SSL/TLS 加密的文件传输协议 (RFC959))通常在端口 990 或端口 21 上运行(如果使用 AUTH SSL/TLS)。

如果您的服务器是 SFTP,那么您需要在 SFTP 模式下配置您的 SFTP 客户端(我们喜欢 WebDrive :)。设置协议后,请验证您的用户名和密码是否正确。

如果您没有走到这一步,或者您遇到了握手失败,则可能是客户端和服务器无法协商一组通用的密码和 Mac。最近有一种趋势是放弃基于 CBC 的密码,转而使用更安全的基于 CTR 的密码。如果您的 SFTP 客户端配置为仅使用 AES+CBC,则服务器可能不再接受这些密码,您需要更新您的 SFTP 客户端以使用任何 CTR 密码....请咨询您的服务器管理员以了解他们支持什么。

WRT WebDrive,如果您仍然遇到连接问题,请向我们在 srthelpdesk.com 的帮助台提交一张票,有人会尽快为您提供帮助。

答案2

事实证明,如果控制台输出任何文本,SFTP 就会崩溃。我向 添加了 echo ~/.bashrc,从而终止了它。

我已将以下内容添加到 的最顶部.bashrc

:<<COMMENT
  SFTP breaks if any thing is output to the shell, and it doesn't need
  anything in .bashrc anyway.

  Description of the following line of code: "If file descriptor 0, or 
  'the input' is connected to a terminal, which is true when you do: 
     ssh yourhost 
  but not when you do:
     ssh yourhost bash -s < script # here it's connected to 'script', a file"

  See
  - https://serverfault.com/questions/485487/use-bashrc-without-breaking-sftp
  - http://www.openssh.com/faq.html#2.9
COMMENT
[ -t 0 ] || return

此外,我已将回显(我打算将其作为登录介绍消息)移至/etc/motd,如中所述这个答案


感谢#bash 上的 dualbus 和 ishikawa。

相关内容