Linux技术,winSCP连接服务器超时故障解决方案

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系!

Linux技术,winSCP连接服务器超时故障解决方案_第1张图片

故障现象

使用 sftp 协议连接主机时, 明显感觉缓慢且卡顿,并且时常出现如下报错:

Linux技术,winSCP连接服务器超时故障解决方案_第2张图片

Linux技术,winSCP连接服务器超时故障解决方案_第3张图片

点击重新连接后,又有概率重新连接上; 总之在"连接上"和"连接超时"这2种情况中反复横跳(有时可以连续连接上,有时卡一会连上,有时直接超时)

Linux技术,winSCP连接服务器超时故障解决方案_第4张图片

故障排查过程

1.检查系统中是否存在错误日志, 使用命令 journalctl -p err 

由于是客户业务系统,以下输出省略了大量的敏感内容信息

[root@itmp ~]# journalctl -p err

...... 省略敏感信息 ......

4 22 11:04:37 itmp sshd[9696]: pam_systemd(sshd:session): Failed to release session: Interrupted system call

4 22 11:11:29 itmp sshd[10226]: pam_systemd(sshd:session): Failed to release session: Interrupted system call

可以看到确实有 sshd 进程的相关报错,将该报错内容直接复制

在搜索引擎中搜索 "redhat kbase pam_systemd(sshd:session):Failed to release..."

找到一篇红帽知识库中的相关文档,链接:Logs similar to "pam_systemd(sshd:session): Failed to release session: Interrupted system call" seen - Red Hat Customer Portal

由于需要订阅账号权限才可查看内容,我将其内容截图如下:

Linux技术,winSCP连接服务器超时故障解决方案_第5张图片

文章中表示,该报错内容属于"信息性"不必引起恐慌; 至此可以判断不是这个报错信息引发的问题。

2.尝试使用其他报错信息进行搜索,即上图中 winSCP 客户端的报错信息 "无法初始化SFTP协议。主机是SFTP服务器吗?"

事实再次证明,中文搜索报错信息是极大的错误,我在此大概浪费了将近1个小时,毫无进展,所有中文搜索到的解决方案均无法解决问题;

  • 尝试升级了 openssh-server
  • 尝试升级了 systemd
  • 尝试修改了 winSCP 客户端的连接配置
  • 尝试修改了 /usr/libexec/openssh/sftp-server 和 /usr/libexec/sftp-server 各种配置的组合

3.将上文报错信息翻译成英文继续搜索 "Cannot initialize SFTP protocol. Is the host running a SFTP server"

搜索引擎快速的把我带到了 Cannot initialize SFTP protocol. Is the host running a SFTP :: Support Forum :: WinSCP WinSCP 客户端的官方论坛。

该帖下面给出了解决方案:

在 /etc/ssh/sshd_config 配置文件中,修改相关条目为: 

[root@localhost ~]# vim /etc/ssh/sshd_config

ForceCommand internal-sftp

通过阅读 man sshd_config 手册得知, ForceCommand 字段将会指定用户登录后所执行的命令(即: 该用户仅能通过 SFTP 登录系统,而无法执行 Bash,这不是我们想要的,但思路已经清晰了)
 

将 internal-sftp 作为关键字,继续在 sshd_config 的 man 手册中进行搜索,可以看到
 

以上我们得知,该参数用于配置ssh外部子系统,比如 文件传输守护进程,其实就是 sftp; 将其参数指定为 internal-sftp 即使用进程内的 sftp 服务器

修改 /etc/ssh/sshd_config 配置文件

[root@itmp ~]# vim /etc/ssh/sshd_config

#Subsystem      sftp    /usr/libexec/openssh/sftp-server     # 原先的配置,将其注释

Subsystem       sftp    internal-sftp                        # 新配置,自己手动写上

[root@itmp ~]# systemctl restart sshd

验证效果

 WinSCP 连接不再超时,连接速度恢复到正常。

联系我们

Linux技术,winSCP连接服务器超时故障解决方案_第6张图片

你可能感兴趣的:(网络,服务器,运维,安全,linux)