Centos 5 VPS:sshd 冻结

Centos 5 VPS:sshd 冻结

我有一台 Centos 5 VPS,尝试连接 ssh 时遇到了一些问题。以下是发生的情况:

  1. 我通过 ssh 进入它并做了一些工作。Nmap 检测到端口 22 已打开。
  2. 我断开了连接。
  3. 有时它会让我重新连接,但通常我无法再次通过 ssh 重新连接(它会给出错误:文件编号错误),并且必须等待半个小时,即使我重新启动系统或通过 Plesk 面板重新启动 ssh 守护程序也是如此。Nmap 检测到端口 22 已关闭。

我可以毫无问题地访问 vps 上的 Apache 和 plesk 面板,但是每次连接时 sshd 就会冻结。

这是我的 /etc/ssh/sshd_config 文件:

#$OpenBSD: sshd_config,v 1.73 2005/12/06 22:38:28 reyk Exp $

# 这是 sshd 服务器系统范围的配置文件。请参阅
# sshd_config(5) 了解更多信息。

# 此 sshd 是用 PATH=/usr/local/bin:/bin:/usr/bin 编译的

# 默认 sshd_config 中选项使用的策略
# OpenSSH 将使用其默认值指定选项,其中
# 可能,但保留注释。未注释的选项会改变
# 默认值。

端口 22
#协议 2,1
协议 2
地址家庭网络
收听地址 82.223.121.43
#聆听地址 ::

# 协议版本 1 的 HostKey
#主机密钥 /etc/ssh/ssh_host_key
# 协议版本 2 的 HostKeys
#主机密钥 /etc/ssh/ssh_host_rsa_key
#主机密钥 /etc/ssh/ssh_host_dsa_key

# 临时版本 1 服务器密钥的生命周期和大小
#密钥再生间隔 1小时
#服务器密钥位 768

# 日志记录
# 废弃 QuietMo​​de 和 FascistLogging
#SyslogFacility 身份验证
Syslog 工具 AUTHPRIV
#日志级别信息

# 验证:

登录宽限时间 2分钟
PermitRootLogin 是
StrictModes 是
#MaxAuthTries 6

#RSAAuthentication 是
#PubkeyAuthentication 是
#AuthorizedKeys 文件 .ssh/authorized_keys

# 为了使其工作,您还需要 /etc/ssh/ssh_known_hosts 中的主机密钥
#RhostsRSAAuthentication 否
# 协议版本 2 类似
#HostbasedAuthentication 否
# 如果不信任 ~/.ssh/known_hosts,则更改为 yes
# RhostsRSAAuthentication 和 HostbasedAuthentication
#IgnoreUserKnownHosts 否
# 不要读取用户的 ~/.rhosts 和 ~/.shosts 文件
#IgnoreRhosts 是

# 要禁用隧道明文密码,请在此处更改为否!
#PasswordAuthentication 是
#PermitEmptyPasswords 否
#PasswordAuthentication 是

# 更改为 no 以禁用 s/key 密码
#ChallengeResponseAuthentication 是

# Kerberos 选项
#KerberosAuthentication 否
#KerberosOrLocalPasswd 是
#KerberosTicketCleanup 是
#KerberosGetAFSToken 否

# GSSAPI 选项
#GSSAPIAuthentication 否
#GSSAPICleanupCredentials 是

# 将其设置为“是”以启用 PAM 身份验证、帐户处理、
# 和会话处理。如果启用此功能,PAM 身份验证将
# 通过ChallengeResponseAuthentication机制获得允许。
# 根据您的 PAM 配置,这可能会绕过
# PasswordAuthentication、PermitEmptyPasswords 和
# “PermitRootLogin without-password”。如果您只想要 PAM 帐户和
# 会话检查无需 PAM 身份验证即可运行,然后启用此功能但设置
#ChallengeResponseAuthentication=否
UsePAM 是

# 接受与语言环境相关的环境变量
接受环境语言 LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
接受环境LC_PAPERLC_名称LC_地址LC_电话LC_测量
接受环境 LC_IDENTIFICATION LC_ALL
#AllowTcpForwarding 是
#GatewayPorts 否
#X11转发否
X11转发否
#X11DisplayOffset 10
#X11UseLocalhost 是
#PrintMotd 是的
#PrintLastLog 是
#TCPKeepAlive 是
#UseLogin 没有
#UsePrivilegeSeparation 是
#PermitUserEnvironment 否
#压缩延迟
#客户端存活间隔 0
#客户端存活数最大 3
#ShowPatchLevel 没有
UseDNS 否
#Pid文件 /var/run/sshd.pid
MaxStartups 20
#PermitTunnel 否
#ChrootDirectory 无

# 没有默认横幅路径
#横幅 /some/path

# 覆盖无子系统的默认设置
子系统 sftp /usr/libexec/openssh/sftp-server

答案1

当您能够成功登录 SSH 时,请尝试以下操作 - 将 sshd_config 中的 LogLevel 更改为:

LogLevel DEBUG

在仍处于登录状态时重新启动 SSHD 以使更改生效,然后注销。下次您能够成功通过 SSH 进入服务器时,请发布 /var/log/secure 的输出。

此外,如果您有权访问 Linux 客户端计算机,请尝试使用以下命令登录您的服务器:

ssh -vvv user@hostname

这将有助于弄清楚当服务器“挂起”时客户端看到什么。

另一个提示 - 我注意到您已将 PermitRootLogin 设置为“是”。在面向公众的 VPS 上,这是非常糟糕的主意。请将其设置为“否”并使用 sudo。

相关内容