Linux

如何在登錄時顯示 SSH 橫幅,但僅用於密碼驗證

  • June 14, 2013

在使用者輸入使用者名登錄我們的 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 yessshd_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
- : 全部 : 全部

引用自:https://serverfault.com/questions/149627