内部ネットワークとインターネットの両方からの接続を受け入れるUbuntu Precise 12.04でOpenSSH 5.9p1サーバーを実行しています。インターネットからの接続には公開鍵認証を要求しますが、内部ネットワークからの接続には公開鍵認証またはパスワード認証を受け入れます。これを実装するようにOpenSSHを構成できますか?
/etc/ssh/sshd_config
のMatch
ディレクティブを使用すると、構成ディレクティブを選択的に適用できます。使用可能な一致基準の1つは接続の送信元アドレスです。そのため、これを使用して必要なものを実装できます。デフォルトでパスワード認証を無効にしてから、内部ネットワークIP範囲からの接続に対して有効にすることができます。 (パスワードの使用を防ぐためにChallengeResponseAuthentication
も無効にする必要があることに注意してください。)この例では、すべてのRFC1918プライベートIP範囲からのパスワード認証を許可しています。詳細は sshd_config manpage を参照してください。
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ブロックまで一致します。 Matchブロックの位置が正しくないと、接続できなくなる場合があります。