OpenSSH: Jak zakończyć blok dopasowania

49

Używam Matchbloku w OpenSSH /etc/ssh/sshd_config(na debianie), aby ograniczyć niektórych użytkowników do SFTP:

# my stuff
Match group sftponly
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp -u 0002
    ChrootDirectory %h

Jak widać, używam #my stuffkomentarza w niestandardowych plikach konfiguracyjnych, aby łatwo odróżnić konfiguracje domyślne od tych, które stworzyłem (i umieszczam je na końcu plików konfiguracyjnych).
Teraz chciałem dołączyć dyrektywę UseDNS nodo konfiguracji (aby przyspieszyć logowanie), ale OpenSSH powiedział Directive 'UseDNS' is not allowed within a Match block.

Teraz zastanawiałem się, czy istnieje składnia, End Matchktóra kończy te bloki dopasowania?

mreithub
źródło

Odpowiedzi:

30

Aby skończyć blok dopasowania z openssh 6.5p1 lub nowszym, użyj linii: Match all

Oto fragment kodu zaczerpnięty z mojego /etc/ssh/sshd_configpliku:

# 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

Linia z podeszwą Matchnie będzie działać. (Nie działało to dla mnie, sshd odmówił uruchomienia)

loxaxs
źródło
2
Fajnie, właśnie wypróbowałem ten i wydaje się, że działa zgodnie z oczekiwaniami (mógłbym nawet użyć UseDNSdyrektywy (która wcześniej nie działała). Akceptując to jako nową odpowiedź. - Nowsze wersje OpenSSH najwyraźniej nawet nie zacznij od pustego Match: lists.mindrot.org/pipermail/openssh-unix-dev/2014-April/…
mreithub
42

Wydaje się, że nie ma sposobu, aby jawnie zakończyć bloki dopasowania. Na stronie podręcznika sshd_config :

Jeśli wszystkie kryteria w wierszu Dopasuj są spełnione, słowa kluczowe w kolejnych wierszach zastępują te ustawione w globalnej sekcji pliku konfiguracyjnego, aż do kolejnej linii Dopasowania lub końca pliku.

Tak więc Matchbloki muszą znajdować się na końcu sshd_configpliku.

mreithub
źródło
7
Inną opcją jest umieszczenie na niej linii bez niczego Match, co skutecznie pasuje do wszystkiego i dlatego jest takie samo jak „zakończenie” bloku. Nadal nie pozwoli to jednak na użycie dyrektyw, które nie są dozwolone w blokach meczów, więc nie pomoże w konkretnym scenariuszu.
Nathan Bouscal
4
„Bloki dopasowania muszą znajdować się na końcu pliku sshd_config.” Bardzo mi pomocny i niewystarczająco wyjaśniony (dla mnie) na stronie podręcznika itp. Dzięki.
MountainX
0

Myślę, że powinniśmy jednocześnie wspomnieć o kluczu Matchi Host.

Host

Ogranicza następujące deklaracje (do następnego Hostlub Matchsłowa kluczowego) tylko dla tych hostów, które pasują do jednego ze wzorów podanych po słowie kluczowym.

Match

Ogranicza następujące deklaracje (do następnego Hostlub Matchsłowa kluczowego), które można stosować tylko wtedy, gdy spełnione są warunki następujące po dopasowaniu słowa kluczowego.

Czytając instrukcję obsługi man ssh_config, zarówno Host *i Match allzresetuje byłego bloku ograniczeń, bez względu na to, że jest to Matchblok lub Hostblok.

Simba
źródło