遇到 SSH 卡很久,大概要30秒以上怎么解决?
这种情况首先确认下 sshd_config 中的2个配置是否是如下这样:
|
UseDNS 选项打开状态下,当客户端试图登录SSH服务器时,服务器端先根据客户端的IP地址进行DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,验证与其原始IP地址是否一致,这是防止客户端欺骗的一种措施,但一般我们的是动态IP不会有PTR记录,打开这个选项不过是在白白浪费时间而已,不如将其关闭。
另外一个是GSSAPI 认证会消耗很长时间,其实关闭了也没多大影响,一般 SSH 依次进行的认证方法的是 publickey, gssapi-keyex, gssapi-with-mic, password, 这个你可以ssh -v开启 debug 模式在连接日志看到。 一般用户只使用 password 认证方式,但前面 3 个认证过程系统还是会尝试,这就浪费时间了,也就造成 SSH 登录慢。
关于 GSSAPI 相关的认证,消耗的时间比较多,具体可以查看 SSH 连接日志。
GSSAPI 主要是基于 Kerberos 的,因此要解决这个问题也就变成要系统配置有 Kerberos, 一般用户是没有配置 Kerberos的
此外,我发现 systemd 的一个 bug 也会影响 ssh 登录慢,甚至还会影响操作系统内的任何操作,例如 su
通过 ssh -v 查看连接详情,发现会卡在 pledge: network 这里很久,
|
另外在系统认证日志中会出现
|
这种情况,可以重启下systemd-logind
|
具体这个问题,可以参考这里
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客!