如何在登錄時顯示 SSH 橫幅,但僅用於密碼驗證
在使用者輸入使用者名登錄我們的 Linux 伺服器後,我會向使用者顯示一條警告消息。我只想在密碼驗證時顯示此消息,而不是在使用密鑰時顯示此消息。它應該只顯示給正在登錄主機的使用者,而不是在他們從一個主機 ssh 到另一個主機時顯示(我們的主機都設置了密鑰,因此我們可以在不輸入密碼的情況下從一個主機 ssh 到另一個)。
目前,我在 /etc/ssh/sshd_config 文件中有一行 Banner 指向包含警告消息的文本文件。Banner 似乎沒有任何進一步的配置選項,所以我想知道是否有辦法使用 pam 或其他機制來做到這一點?謝謝。
是的,您可以使用該
pam_echo
外掛:auth required pam_unix.so auth optional pam_echo.so file=/etc/ssh/password_banner.txt
這應該在密碼登錄後產生 pam_echo 輸出。
有關文件,請參見http://www.linux-pam.org/Linux-PAM-html/sag-pam_echo.html。
編輯:您還需要確保您
UsePAM yes
的sshd_config
. 用auth替換密碼。
我只想在密碼驗證時顯示此消息,而不是在使用密鑰時顯示此消息。它應該只顯示給正在登錄主機的使用者,而不是在他們從一個主機 ssh 到另一個主機時顯示(我們的主機都設置了密鑰,因此我們可以在不輸入密碼的情況下從一個主機 ssh 到另一個)。
您是在談論使用者密鑰
~/.ssh/authorized_keys
還是主機密鑰/etc/ssh/ssh_known_hosts
?目前,我在 /etc/ssh/sshd_config 文件中有一行 Banner 指向包含警告消息的文本文件。
Banner
在任何身份驗證發生之前顯示。我想知道是否有辦法用 pam 或其他機制來做到這一點?
您可以嘗試檢查遠端(源)主機名:檢查
pam_access
使用者是否來自您的網路之外:session [成功=1 預設=忽略] pam_access.so accessfile=/etc/pam_access_localnet.conf 會話可選 pam_echo.so 文件=/etc/notice
/etc/pam_access_localnet.conf
:+:全部:192.168.201.0/24 - : 全部 : 全部