Linux

SSH 在啟動會話時很慢

  • March 20, 2021

通過 SSH 啟動互動式 shell 對我的其中一台伺服器來說很慢。包括協商加密在內的一切都很快,但它會掛起 45 秒。在那之後,它完成了,我有一個外殼。我如何辨識它掛在什麼上面?我嘗試清除環境並禁用所有轉發,以防減慢速度,但沒有幫助。這是我的測試命令:

env -i ssh -x -a -vvv server

這是 SSH 的輸出:

debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
*(hangs for 45 seconds here)*
debug3: Wrote 128 bytes for a total of 3191
debug2: callback start
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug1: Sending environment.

pam_krb5.so 被配置為獲取不存在的 shell 的 AFS 令牌,該 shell 有 30 秒的超時暫停使用該模組的任何身份驗證,而不僅僅是 SSH。刪除它並且身份驗證發生得更快。

在一個非常相似的情況下,它是 update-motd 腳本之一。

以下是訣竅:

sudo rm /etc/update-motd.d/90-updates-available

這是一個測量每個腳本時間的小助手:

$ for f in /etc/update-motd.d/*;do echo $f;time $f;done
/etc/update-motd.d/00-header            0m0.007s
/etc/update-motd.d/10-help-text         0m0.005s
/etc/update-motd.d/90-updates-available 0m49.163s
/etc/update-motd.d/91-release-upgrade   0m0.152s
/etc/update-motd.d/98-fsck-at-reboot    0m0.015s
/etc/update-motd.d/98-reboot-required   0m0.003s
(output reduced to the relevant parts)

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