相信很多朋友在使用Linux系統的時候因為安全性的原因摒棄了telnet rlogin 或者 X-window,而把openssh作為自己默認的遠程登錄方式。
然而經常會遇到的一個情況是telnet到server速度很快,但是ssh連接的時候卻很慢,大概要等半分鐘甚至更久。ping的速度也非常好,讓人誤以為是ssh連接不上。
下面說下如何解決這樣的問題,最為常見的原因是因為server的sshd會去DNS查找訪問client IP的hostname,如果DNS不可用或者沒有相關記錄,就會耗費大量時間。
1、在server上/etc/hosts文件中把你本機的ip和hostname加入
2、在server上/etc/ssh/sshd_config文件中修改或加入UseDNS=no
3、注釋掉server上/etc/resolv.conf中所有行
4、修改server上/etc/nsswitch.conf中hosts為hosts: files
5、reboot server使配置生效
另外在
authentication gssapi-with-mic也有可能出現問題,在server上/etc/ssh/sshd_config文件中修改GSSAPIAuthentication no.
/etc/init.d/sshd restart重啟sshd進程使配置生效。
如果以上兩招還不能解決問題,善於使用DEBUG MODE ssh -v來查看log,找到停滯時間最長的步驟,然後針對性的修改配置解決