sshd - 根據傳入主機指定不同的密碼

sshd - 根據傳入主機指定不同的密碼

根據人 sshd_config,我可以指定支援的密碼列表,例如:

Ciphers arcfour, 3des-cbc

問題是在一台主機上運行的客戶端應用程式不支援與網路其餘部分相同的密碼

因此,有沒有辦法指定在所有情況下使用的密碼,但有一個主機例外?

答案1

指令中列出的密碼Ciphers應按第一個符合項目進行,因此請將惡意客戶端的密碼放在清單的最後。如果可以的話,網路中的其他用戶端將首先協商清單中較高的密碼,而您的惡意用戶端應該會採用較弱的密碼。

不幸的是,如果明確設置,這仍然允許其他客戶端使用較弱的密碼。遺憾的是,您不能將Ciphers指令放入區塊內Match。我能想到的另一個選項是在不同的連接埠上運行不同的伺服器以用於奇數客戶端輸出,並限制對該主機的第二個 sshd 實例的存取。

答案2

據我所知,唯一的選擇是使用 ForceCommand 圍繞它編寫腳本。

使用 Match 應該不會太棘手:

ForceCommand

Forces the execution of the command specified by ForceCommand, ignoring any command supplied by the client and ~/.ssh/rc if present. The command is invoked by using the user's login shell with the -c option. This applies to shell, command, or subsystem execution. It is most useful inside a Match block.

以上內容來自手冊頁。我在這裡找到了更多:SSHD 網守腳本

- 編輯 -

我能想到的最好方法是在另一個連接埠上運行一個單獨的SSHD 實例,然後將-s 添加到其中一個重定向範例中,以僅捕獲應用程式的IP 並將其重定向到配置了正確密碼的另一個實例:http://www.cyberciti.biz/faq/linux-port-redirection-with-iptables/

相關內容