私はOpenWrtルーターを持っていますが、SSHでパスワード認証を無効にして、キー認証のみにしたいと考えています。これは次のように簡単に実現できます。ガイドしかし、ドキュメントでは、WAN インターフェイスでのパスワード認証のみを無効にしたいのですが、これは可能ですか?
答え1
この回答はOpenSSHに適用されます。OpenWRTにはデフォルトでDropbearが含まれているため、次のように置き換える必要があります。このリンク(基本的には、 をインストールしopenssh-server
て無効にしますdropbear
)。
OpenSSH では、次の 2 つのメカニズムを使用して、必要なことが可能になります。
- LAN および WAN インターフェイスを個別に
sshd
構成します。これは、静的 WAN IP がある場合にのみ適切に機能します (特定のインターフェイスをリッスンするように指示することはできずsshd
、特定の IP のみをリッスンするように指示できます)。 - LAN 内のクライアントに対してのみパスワード認証を許可します。
オプション1:
LAN 構成ファイル (例: /etc/ssh/sshd_config
、デフォルト ファイル) には、次のような内容が含まれます。
PasswordAuthentication yes
Listen 192.168.1.1:22
WAN 構成ファイル (例/etc/ssh/sshd_config_wan
:
PasswordAuthentication no
Listen 10.1.1.1:22
上記では、192.168.1.1 は LAN インターフェイス IP、10.1.1.1 は WAN IP アドレス、どちらの場合も 22 はリッスンするポートです。-f
のオプションを使用して、読み込む構成ファイルを指定できますsshd
。デフォルトの init スクリプトを新しいスクリプトにコピーし、sshd
で呼び出すように修正する必要があります-f /etc/ssh/sshd_config_wan
。
オプション2:
では/etc/ssh/sshd_config
、これを終わりファイルの:
PasswordAuthentication no
Match address 192.168.1.0/24
PasswordAuthentication yes
ここでは、LAN 上のアドレス (ここでは 192.168.1.0/24 と想定) を除いて、パスワード認証を無効にします。
答え2
異なる構成で SSH サーバーの 2 つのインスタンスを実行し、それぞれが異なるインターフェースでリッスンするようにすることができます。