Linux
為特定使用者禁用 SSH MOTD/Banner
我有一個自定義外殼,
/bin/
它返回一個迴聲並存在。我有一個僅與該 shell 連結的使用者,因此當有人嘗試僅通過 pubkey 使用該使用者 ssh 進入伺服器時,自定義 shell 將回顯某些內容並立即退出(在回顯後立即關閉 ssh 連接)。問題是它正在工作,但它在身份驗證後顯示預設的 Ubuntu MOTD / Banner,而我只想返回迴聲。
預期的
local@sever:~$ ssh honeypot@remote-server Welcome 1.2.3.4 | you've been logged Connection to remote-server closed. local@server:~$
怎麼了
local@sever:~$ ssh honeypot@remote-server Welcome to Ubuntu 16.04.x LTS (GNU/Linux x.x.x-xxx-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage Get cloud support with Ubuntu Advantage Cloud Guest: http://www.ubuntu.com/business/services/cloud 6 packages can be updated. 0 updates are security updates. New release '18.04.1 LTS' available. Run 'do-release-upgrade' to upgrade to it. *** System restart required *** Last login: Thu Oct 2 01:08:16 2017 from 1.2.3.4 Welcome 1.2.3.4 | you've been logged Connection to remote-server closed. local@server:~$
注意:我不想為所有其他使用者禁用 MOTD/Banner,並且我已經嘗試過
Match User honeypot Banner none
in sshd,它沒有用。還嘗試了/etc/profile
我使用 whoami 檢查該使用者的東西。編輯:我找到了一種解決方法,作為答案發布,但我仍在尋找合適的答案。
登錄消息可能來自幾個地方。如果已配置,則首先顯示 ssh 橫幅,然後顯示內容
/etc/motd
(這是一個由管理員創建和維護的文本文件,或者它可能由腳本定期生成。我認為 Ubuntu 使用不同的方法 -man motd
可能一些啟發…)。最後,使用者的 shell rc 文件可以直接顯示更多消息,也可以通過呼叫其他實用程序來顯示。
如果已配置,可以通過
Banner none
在配置文件中設置全域禁用 ssh 橫幅,或者為了更好地控制,您可以使用類似Match User honeypot Banner none
在任何一種情況下,重新啟動
sshd
以獲取更改。如果要禁止
/etc/motd
單個使用者,請在該使用者的主目錄中創建一個名為.hushlogin
. 如果此文件存在,則程序在啟動登錄 shell 之前login
不會顯示 , 的內容。/etc/motd
如果使用者可以登錄並獲得終端,他們可以自由刪除文件。