Ssh
緩慢的 ssh 登錄到遠端機器
我遇到從機器到遠端機器的緩慢 ssh 登錄。ssh 的詳細資訊如下所示,分為兩個斷塊。ssh 在下面顯示的塊中凍結 15 秒。
[root@zabbix ~]# ssh -vvv zabbix@172.18.xxx.xx OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug2: ssh_connect: needpriv 0 debug1: Connecting to 172.18.xxx.xx [172.18.xxx.xx] port 22. debug1: Connection established. debug1: permanently_set_uid: 0/0 debug1: identity file /root/.ssh/identity type -1 debug1: identity file /root/.ssh/id_rsa type -1 debug1: identity file /root/.ssh/id_dsa type -1 debug1: Remote protocol version 2.0, remote software version Sun_SSH_1.1.4 debug1: no match: Sun_SSH_1.1.4 debug1: Enabling compatibility mode for protocol 2.0 ............... ............... debug1: Trying private key: /root/.ssh/id_dsa debug3: no such identity: /root/.ssh/id_dsa debug2: we did not send a packet, disable method debug3: authmethod_lookup keyboard-interactive debug3: remaining preferred: password debug3: authmethod_is_enabled keyboard-interactive debug1: Next authentication method: keyboard-interactive debug2: userauth_kbdint debug2: we sent a keyboard-interactive packet, wait for reply debug3: Wrote 96 bytes for a total of 1205
ssh 在這裡掛了大約 15 秒,然後它要求輸入密碼
debug2: input_userauth_info_req debug2: input_userauth_info_req: num_prompts 1 Password:
輸入密碼後,它會掛在如下所示的行尾:
debug3: packet_send2: adding 32 (len 23 padlen 9 extra_pad 64) debug3: Wrote 80 bytes for a total of 1285 debug1: Authentication succeeded (keyboard-interactive). debug1: channel 0: new [client-session] debug3: ssh_session2_open: channel_new: 0 debug2: channel 0: send open debug1: Entering interactive session. debug3: Wrote 64 bytes for a total of 1349
大約 15 秒後,登錄成功。
我的問題是,我該怎麼做才能使這個 ssh 嘗試更快?
此登錄嘗試是從 RHEL 6.2 機器到 Solaris 10 機器完成的。一開始我認為這可能是網路問題,但後來我發現我可以從另一台 Solaris 10 機器登錄到我上面提到的同一台遠端 Solaris 機器,而不會出現任何此類凍結。
遠端 Solaris 機器中的 SSH 版本如下所示:
$ ssh -V Sun_SSH_1.1.4, SSH protocols 1.5/2.0, OpenSSL 0x0090704f
而 RHEL 機器中的 SSH 版本如下所示:
[root@zabbix ~]# ssh -V OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
請注意,遠端 Solaris 10 機器是物理 Solaris 10 機器上的一個區域。從本地 RHEL 機器嘗試使用 ssh 登錄到物理 solaris 10 機器非常快。所以,我想,這根本不是網路問題。
更新:在遠端 Solaris 10 機器的 sshd_config 文件中添加以下所有啟用的指令。
Protocol 2 Port 22 ListenAddress 0.0.0.0 AllowTcpForwarding yes GatewayPorts yes X11Forwarding yes X11DisplayOffset 10 X11UseLocalhost yes PrintMotd no KeepAlive yes SyslogFacility auth LogLevel info HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key ServerKeyBits 768 KeyRegenerationInterval 3600 StrictModes yes LoginGraceTime 600 MaxAuthTries 6 MaxAuthTriesLog 3 PermitEmptyPasswords no PasswordAuthentication yes PAMAuthenticationViaKBDInt yes Subsystem sftp internal-sftp IgnoreRhosts yes RhostsAuthentication no RhostsRSAAuthentication no RSAAuthentication yes
非常感謝您的意見。
謝謝
在 RHEL 機器上,嘗試:
ssh -o GSSAPIAuthentication=no zabbix@172.18.xxx.xx
如果可行,請通過編輯使其永久化
~/.ssh/config
並添加:GSSAPIAuthentication no
此外,檢查 RHEL 在 DNS 中是否可見(從伺服器的角度來看)。伺服器嘗試檢查您的反向 DNS 解析。如果失敗,您將遭受延遲。
可以禁用此檢查:
編輯
/etc/ssh/sshd_config
OpenSSH:使用
UseDNS no
索拉里斯:使用
LookupClientHostnames no
重新啟動
sshd
,應該會更快登錄。