Linux
SSH 在啟動會話時很慢
通過 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)