2014/07/10

ssh 到Linux 很慢的問題 (slow ssh connection to Linux)


[ Quick Solution Mode ]
eg. ssh tchsu@192.168.1.1    SLOW!!!!    NO~~~ >"<
$ vi /etc/ssh/sshd_conf     # on 192.168.1.1
# add or modify to below:
UseDNS no
GSSAPIAuthentication no

$ sudo service ssh restart

[ Verbose Mode ]
當SSH到某台 Linux 時, 有時候會發現連線速度很慢,
比較常見的問題是因為 target Linux DNS Name 的反解析卡住,
或是在等待GSSAPI 認證

以筆者常使用的環境來說,
通常是 ssh 到 VM 裡的 Linux,
eg. ssh tchsu@92.168.x.x
當發生 ssh 很慢時,
就是因為連線目標的Linux 在做 DNS Name 的反解析,
以VM為例, 若VM的Linux 沒有連上網路時 就會很慢,
因為要等 DNS query timeout,
若有連上網路仍很慢, 就有可能是機房的DNS解析有問題,

Anyway, 要解決這個問題,
就得修改目標Linux 的ssh設定,
讓 SSH 時 不要做 DNS Name 解析,
在 SSH Server (目標 Linux ) 端,
有一份 /etc/ssh/sshd_conf 的文件,
裡面記錄了 SSH Server 相關的配置,
sshd 的 d 指的是 Daemon,
也就是 SSH Server, 你 local 是 SSH Client,
加上或修改成  UseDNS no,
修改完記得 restart ssh
$ sudo service ssh restart

有時候改了DNS 為何還是很慢,
這時有可能是另一個問題,
也就是在嘗試 GSSAPIAuthentication 認證,
這時一樣修改 sshd_conf,
加上或修改成 GSSAPIAuthentication no,


ps.
1. 不知道什麼是GSSAPIAuthentication, 可以 man sshd_conf
GSSAPIAuthentication
Specifies whether user authentication based on GSSAPI is allowed.
The default is Note that this option applies to protocol version 2 only.

2. ssh -v xx@x.x.x.x
verbose mode, 可以看到連線時詳細的過程, 可以作為問題發生的參考

3. 不修改 sshd_conf 的話, 可以將 192.168.x.x 寫進 /etc/resolv.conf

沒有留言:

張貼留言