这两天在使用 Docker 做测试,发现新建的容器在首次 ssh 登录的时候经常超时,我们简单将超时时间设置成60秒,但仍然会偶尔超时。所以简单延迟超时时间此路不通。
于是想到是否可以通过修改 sshd 的参数,来解决问题。大概查了一下 SSH 登录太慢可能是 DNS 解析的问题,默认配置 ssh的 初次接受 ssh 连接时会自动反向解析客户端 IP 地址以得到 ssh 客户端的主机名。如果此时 DNS 的反向解析有问题,sshd 就会等到 DNS 解析超时后才提供 ssh 连接。
解决办法就是修改 /etc/ssh/sshd_config 文件,将其中的:
#UseDNS yes
改为:
UseDNS no
然后重新启动 sshd 服务。