我遇到了一个奇怪的情况。
我正在运行 FileZilla 以使用 SFTP 协议访问安装在本地计算机上的虚拟机。
VM操作系统是RHE8。
问题是我在这个虚拟机上有两个用户帐户,而 FileZilla 只能与其中一个建立连接。其他 SFTP 客户端也是如此。
PuTTY 对于两个用户来说运行都非常顺畅。
我不确定是否有任何东西应该在有问题的用户下安装并且安装在“Ok”用户下。
当我运行时,SSH 状态良好systemctl status sshd
。
我授予上述用户 su 权限,并尝试更改防火墙设置。一切都很顺利。
FileZilla 返回:
Error: Connection timed out after 20 seconds of inactivity
Error: Could not connect to server.
有什么提示吗?提前谢谢您。
“问题”用户的日志信息:
...
2020-12-17 13:23:10 10796 1 Traçar: Sent password
2020-12-17 13:23:10 10796 1 Traçar: Access granted
2020-12-17 13:23:10 10796 1 Traçar: Opening main session channel
2020-12-17 13:23:10 10796 1 Traçar: Opened main channel
2020-12-17 13:23:10 10796 1 Traçar: Started a shell/command
2020-12-17 13:23:10 10796 1 Estado: Connected to 192.121.68.24
2020-12-17 13:23:30 10796 1 Erro: Conexão expirou após 20 segundos de inatividade
2020-12-17 13:23:30 10796 1 Traçar: CControlSocket::DoClose(2050)
2020-12-17 13:23:30 10796 1 Traçar: CControlSocket::ResetOperation(2114)
2020-12-17 13:23:30 10796 1 Traçar: CSftpConnectOpData::Reset(2114) in state 3
2020-12-17 13:23:30 10796 1 Erro: Não foi possível conectar ao servidor
2020-12-17 13:23:30 10796 1 Traçar: CFileZillaEnginePrivate::ResetOperation(2114)
...
将日志文件发送给“OK 用户”:
...
2020-12-17 13:25:46 10796 1 Traçar: Sent password
2020-12-17 13:25:46 10796 1 Traçar: Access granted
2020-12-17 13:25:46 10796 1 Traçar: Opening main session channel
2020-12-17 13:25:47 10796 1 Traçar: Opened main channel
2020-12-17 13:25:47 10796 1 Traçar: Started a shell/command
2020-12-17 13:25:47 10796 1 Estado: Connected to 192.121.68.24
2020-12-17 13:25:47 10796 1 Traçar: Remote working directory is /home/ragnarok
...
答案1
“问题”帐户错误地设置了配置文件脚本。其中一些脚本打印的消息违反了 SFTP 协议。终端和非终端会话(分配了和未分配 TTY 的会话)有不同的配置文件脚本。只能从用于终端会话的脚本打印消息。当您从用于非终端会话的配置文件脚本打印消息时,它会破坏使用严格协议(例如 SFTP 或 SCP)的任何客户端。
当您使用 SSH 终端(例如 PuTTY)登录时,您将看到完整的消息。
通常,您需要将打印消息的命令从.bashrc
脚本移动到.bash_profile
。
另请参阅 WinSCP 文档以了解错误消息:
“收到的 SFTP 数据包过大(... B)。支持的最大数据包大小为 102400 B”。
关于 WinSCP 还有一个类似的问题:
使用 WinSCP + 将文件从 solaris 机器复制到 Windows 机器时出错。
答案2
您是否为 oracle 用户设置了主目录?我将回避您是否应该设置主目录的问题...无论如何,您可以通过发出以下命令进行检查:
grep oracle /etc/passwd
然后它应该出现在末尾,我认为在最后一个冒号字符之前。如果没有设置,也许这就是问题所在。您需要设置一个主目录(用户有权限)。为此,请发出以下命令:
mkdir /path/to/directory
usermod -d /path/to/directory oracle
让我们看看这是否能解决您的问题,但我怀疑它会......