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


49

MatchOpenSSHの/etc/ssh/sshd_config(debianの)ブロックを使用して、一部のユーザーを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それらのマッチブロックを終了するような構文があるかどうか疑問に思っていましたか?

回答:


30

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


2
クール、私はちょうどそれを試してみましたが、期待通りに動作するUseDNSようです(以前は機能していなかったディレクティブを使用することさえできました。これを新しい答えとして受け入れます。)-新しいOpenSSHバージョンは明らかに空から始めMatchます。lists.mindrot.org
pipermail

42

Matchブロックを明示的に終了する方法はないようです。sshd_configのマニュアルページ

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

そのため、Matchブロックはsshd_configファイルの最後に配置する必要があります。


7
もう1つのオプションはMatch、その上にのみ何もない行を作成することです。これは、すべてに効果的に一致するため、ブロックの「終了」と同じです。ただし、これでも、Matchブロックで許可されていないディレクティブを使用することはできません。そのため、特定のシナリオでは役に立ちません。
ネイサンBouscal

4
「ブロックをsshd_configファイルの最後に配置する必要があります。」私にとって非常に役立ち、manページなどで(私にとっては)十分に説明されていません。ありがとう。
MountainX

0

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

Host

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

Match

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

マニュアルを読んman ssh_config、両方Host *Match all旧制限ブロックがリセットされます、いやそれは問題ではMatchブロックまたはHostブロック。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.