如何將 ssh 和 sshd 中的某些密碼和金鑰交換演算法列入黑名單

如何將 ssh 和 sshd 中的某些密碼和金鑰交換演算法列入黑名單

要獲取所有支援的演算法的列表,我可以運行ssh -Q kex,它在我的機器上輸出

diffie-hellman-group1-sha1
diffie-hellman-group14-sha1
diffie-hellman-group14-sha256
diffie-hellman-group16-sha512
diffie-hellman-group18-sha512
diffie-hellman-group-exchange-sha1
diffie-hellman-group-exchange-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
curve25519-sha256
[email protected]
[email protected]

我還知道我可以在 sshd_config 和 ssh_config 檔案中新增一行,就像我想將某些演算法列入白名單一樣。KexAlgorithms [email protected],diffie-hellman-group-exchange-sha256

然而,我不認為我會一直保持這個清單的最新狀態。如果我的 ssh 版本更新為包含更好的密碼,我希望能夠自動利用這些密碼(如果我不修改設定檔就會發生這種情況)。透過嘗試消除我不想使用的演算法(例如,diffie-hellman-group1-sha1),我也鎖定了自己不使用任何比目前支援的最佳演算法更好的演算法。

有沒有辦法配置 ssh 和 sshd 說“不考慮這些演算法”而不同時說“並且除了這些其他演算法之外也不考慮任何東西”?

我會接受特定於 openssh 和 Linux 的答案,並且您可以假設我正在使用相關軟體的非常新版本。

答案1

從手冊頁ssh_config

KexAlgorithms
指定可用的 KEX(金鑰交換)演算法。多個演算法必須以逗號分隔。如果指定的清單以「+」字元開頭,則指定的方法將附加到預設集而不是取代它們。如果指定的清單以「-」字元開頭,則指定的方法(包括通配符)將從預設集中刪除而不是替換它們。

將“-”選項與您想要從客戶端預設清單中列入黑名單的所有密碼一起使用。

不幸的是,手冊頁sshd_config似乎沒有在伺服器端記錄相同的選項,但它確實有效。

相關內容