Linux

只允許從內部網路對 SSH 伺服器進行密碼驗證

  • October 1, 2015

我有一個在 Ubuntu Precise 12.04 上執行的 OpenSSH 5.9p1 伺服器,它接受來自內部網路和 Internet 的連接。我想要求對來自 Internet 的連接進行公鑰身份驗證,但接受來自內部網路的連接的公鑰或密碼身份驗證。我可以配置 OpenSSH 來實現這個嗎?

中的Match指令/etc/ssh/sshd_config允許您有選擇地應用配置指令。可用的匹配條件之一是連接的源地址,因此可用於實現您想要的。您可以預設禁用密碼驗證,然後為來自內部網路 IP 範圍的連接啟用它。(請注意,您還希望禁用ChallengeResponseAuthentication以防止使用密碼。)此範例允許來自所有 RFC1918 私有 IP 範圍的密碼驗證。有關更多詳細資訊,請參見sshd_config 手冊頁

PasswordAuthentication no
ChallengeResponseAuthentication no

Match Address 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
   PasswordAuthentication yes

請注意,Match 塊應該添加到文件的末尾,否則它後面的所有內容都將匹配到下一個 Match 塊。匹配塊的錯誤定位可能會導致無法連接。

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