Ssh

使用秘密公共(客戶端)ssl 證書通過 stunnel 進行 SSH

  • March 6, 2012

我處於無法無密碼登錄 ssh 的情況,並且 ssh 伺服器無法通過預設埠以外的任何其他埠執行。所以,我選擇使用 stunnel 來隧道 ssh。在我的個人電腦上,我在客戶端模式下使用 stunnel 並使用它來登錄伺服器,如下所示ssh -p 8888 user@localhost:問題是 ssl 客戶端證書是公開的,因此任何人都可以輕鬆設置到我的伺服器的 ssl 隧道。如果有人查詢https://myserver.com它表明 openssh 2.0 正在 ssl 埠上執行。因此它成為了一種最簡單的闖入方式,比在非預設埠上執行 ssl 伺服器要簡單得多。所以,我想知道是否可以將 ssl 客戶端證書設為私有,這樣就不會將它提供給在我的伺服器上進行 https 查詢的任何人。而且我應該能夠像 ssl 私鑰一樣保密。

所以澄清一下:您希望允許來自辦公室網路的密碼,而不是來自其他任何地方的密碼。但是,您需要能夠從任何地方進行連接。

在我的網路上,從外部登錄時需要 SSH 密鑰,但從內部的另一台主機連接時可以使用密鑰或密碼。

這是它的工作原理:

/etc/ssh/sshd_config

RSAAuthentication yes
PasswordAuthentication no

Match Address 192.168.0.*
   PasswordAuthentication yes

如果您將辦公室子網替換為 192.168.0.*,使用者將能夠使用密碼進行連接,但只能從辦公室子網。但是,您將能夠使用您的 SSH 密鑰對從任何地方進行連接。

當 ssh 客戶端連接到伺服器時,它會顯示一個它可以嘗試的身份驗證機制列表。通常該列表是“公鑰、密碼”。在這種情況下,當有人從外部連接時,他們只會看到“公鑰”,因此他們的客戶端甚至不會嘗試發送密碼。如果他們嘗試使用 SSH 公鑰以外的任何機制進行身份驗證,伺服器會立即關閉連接。因此,不存在暴力破解密碼的可能性。

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