web-dev-qa-db-ja.com

OpenSSH:マッチブロックを終了する方法

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のような構文があるかどうか疑問に思っていましたか?

55
mreithub

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は起動を拒否しました)

38
loxaxs

Matchブロックを明示的に終了する方法はないようです。 sshd_config manページ から:

一致行のすべての基準が満たされた場合、次の行のキーワードは、構成ファイルのグローバルセクションで設定されたキーワードをオーバーライドします、別の一致行またはファイルの終わりまで。

したがって、Matchブロックはsshd_configファイルの最後に置く必要があります。

45
mreithub

MatchキーとHostキーを同時に言及する必要があると思います。

Host

以下の宣言(次のHostまたはMatchキーワードまで)を、キーワードの後に​​指定されたパターンのいずれかに一致するホストのみに限定します。

Match

以下の宣言(次のHostまたはMatchキーワードまで)が、Matchキーワードに続く条件が満たされた場合にのみ使用されるように制限します。

man ssh_configのマニュアルを読むと、Host *Match allの両方が、MatchブロックでもHostブロックでも、以前の制限ブロックをリセットします。

0
Simba