ユーザーが私のLANの外部からSSH経由で私のLANにログインするときに、特定のコマンドを強制的に実行したいのですが。私の考えは、ForceCommand
をMatch
条件付きブロックで使用することでした。これは、LAN内のアドレスを除くすべてのアドレスに一致します。
man 5 sshd_config
によると、私は以下を試しました:
Match Address !192.168.1.0/24
により、ユーザーはどこからでも任意のコマンドを実行できます。Match Address !192.168.*
により、ユーザーはどこからでも任意のコマンドを実行できます。Match !Address 192.168.*
は、sshd
が開始を拒否することにより、コマンドの実行を防止しました。!
を使用したパターンの否定については man 5 ssh_config
(セクション "Patterns") で説明しています。これはアドレスにどのように適用できますか?
このServerFaultの回答 によると、何らかの未知の理由により、これを行うにはワイルドカード一致を追加する必要があります。ただし、CIDR表記は機能するようです。例えば:
Match Address *,!192.168.1.0/24
ForceCommand /bin/false
これはOpenSSH 5.9p1で動作します。