Ssh

緩慢的 ssh 登錄到遠端機器

  • November 22, 2020

我遇到從機器到遠端機器的緩慢 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,應該會更快登錄。

引用自:https://unix.stackexchange.com/questions/149874