使用SSH遠程登錄Linux在輸入用戶名之后在過了好幾秒之后才會出現輸入密碼。嚴重影響工作效率。登錄很慢,登錄上去后速度正常,這種情況的主要原因為:
DNS反向解析的問題
SSH在登錄的時候一般我們輸入服務器的ip地址。它根據該IP使用反向DNS找到主機名,再使用DNS找到IP地址,最后匹配一下登錄的IP是否合法。如果IP沒有域名,或者DNS服務器很慢或不通,那么登錄就會很花時間。
解決辦法:
在目標服務器上修改sshd服務器端配置,並重啟sshd
vi /etc/ssh/sshd_config,設置UseDNS為no即可
此時遠程登錄該機器則不會有延遲。
修改腳本
#!/bin/bash #=============================================================================== # # FILE: ssh_DNS.bash # # USAGE: ssh USEDNS Parameter modification script # # DESCRIPTION: To modify ssh USEDNS Parameter # # BUGS: --- # NOTES: --- # AUTHOR: paul_hch # MAIL: # CREATED: 05/26/2017 09:49:05 PM # VERSION: 1.0 #=============================================================================== #備份sshd_config cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.bak if [[ $? = 0 ]];then echo -e '\e[1;32mThe sshd_config backup successfully! \e[0m' echo "" else echo -e '\e[1;31mThe sshd_config backup failed! Please check it out.\e[0m' echo "" exit fi #查看目前的USEDNS參數 echo -e '\e[1;32mThe sshd_config USEDNS Parameter now: \e[0m' grep DNS /etc/ssh/sshd_config #修改參數 sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config if [[ $? = 0 ]];then echo -e '\e[1;32mThe USEDNS Parameter modification successfully! \e[0m' grep DNS /etc/ssh/sshd_config echo "" else echo -e '\e[1;31mThe USEDNS Parameter modification failed! Please check it out.\e[0m' echo "" exit fi #重啟sshd服務 echo -e '\e[1;32mThe sshd is restarting now: \e[0m' service sshd restart