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

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

當使用者輸入使用者名稱登入我們的 Linux 伺服器後,我會收到一條警告訊息。我只想在密碼驗證時顯示此訊息,而不是在使用金鑰時顯示此訊息。它應該只向正在登入主機的使用者顯示,而不是當他們從一台主機ssh 到另一台主機時顯示(我們的主機都設定了金鑰,因此我們可以在不輸入密碼的情況下從一台主機ssh 到另一台主機)。

目前,我在 /etc/ssh/sshd_config 檔案中有一行 Banner,它指向包含警告訊息的文字檔案。 Banner 似乎沒有任何進一步的配置選項,所以我想知道是否有辦法使用 pam 或其他機制來做到這一點?謝謝。

答案1

是的,您可以使用該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.將密碼替換為身份驗證。

答案2

我只想在密碼驗證時顯示此訊息,而不是在使用金鑰時顯示此訊息。它應該只向正在登入主機的使用者顯示,而不是當他們從一台主機ssh 到另一台主機時顯示(我們的主機都設定了金鑰,因此我們可以從一台主機ssh 到另一台主機而無需輸入密碼)。

你在談論嗎使用者~/.ssh/authorized_keys主持人鑰匙/etc/ssh/ssh_known_hosts

目前,我在 /etc/ssh/sshd_config 檔案中有一行橫幅,它指向包含警告訊息的文字檔案。

Banner被展示任何身份驗證都會發生。

我想知道是否有辦法用 pam 或其他機制來做到這一點?

您可以嘗試檢查遠端(來源)主機名稱:檢查pam_access使用者是否來自網路外部:

會話 [成功=1 預設=忽略] pam_access.so accessfile=/etc/pam_access_localnet.conf
會話可選 pam_echo.so file=/etc/notice

/etc/pam_access_localnet.conf:

+ : 全部 : 192.168.201.0/24
- : 全部 : 全部

相關內容