OpenSSHの/etc/ssh/sshd_config
(debian)でMatch
ブロックを使用して、一部のユーザーをSFTPに制限しています。
# my stuff
Match group sftponly
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -u 0002
ChrootDirectory %h
ご覧のとおり、カスタム構成ファイルで#my stuff
コメントを使用して、デフォルト構成と作成した構成を簡単に区別しています(構成ファイルの最後に配置しています)。
今、私はディレクティブにUseDNS no
を(ログインを高速化するために)設定に追加したかったのですが、OpenSSHはDirective 'UseDNS' is not allowed within a Match block
と述べました。
今、これらの一致ブロックを終了するためのEnd Match
のような構文があるかどうか疑問に思っていましたか?
Openssh 6.5p1以上で一致ブロックを終了するには、次の行を使用します:Match all
以下は、私の/etc/ssh/sshd_config
ファイルから抜粋したコードの一部です。
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no
Match Host 192.168.1.12
PasswordAuthentication yes
Match all
X11Forwarding yes
X11DisplayOffset 10
ソールがMatch
の行は機能しません。 (私にとってはうまくいきませんでした、sshdは起動を拒否しました)
Matchブロックを明示的に終了する方法はないようです。 sshd_config manページ から:
一致行のすべての基準が満たされた場合、次の行のキーワードは、構成ファイルのグローバルセクションで設定されたキーワードをオーバーライドします、別の一致行またはファイルの終わりまで。
したがって、Match
ブロックはsshd_config
ファイルの最後に置く必要があります。
Match
キーとHost
キーを同時に言及する必要があると思います。
Host
以下の宣言(次の
Host
またはMatch
キーワードまで)を、キーワードの後に指定されたパターンのいずれかに一致するホストのみに限定します。
Match
以下の宣言(次の
Host
またはMatch
キーワードまで)が、Matchキーワードに続く条件が満たされた場合にのみ使用されるように制限します。
man ssh_config
のマニュアルを読むと、Host *
とMatch all
の両方が、Match
ブロックでもHost
ブロックでも、以前の制限ブロックをリセットします。