OpenSSH: comment mettre fin à un bloc de match

49

J'utilise un Matchbloc dans OpenSSH /etc/ssh/sshd_config(sur debian) pour restreindre certains utilisateurs à SFTP:

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

Comme vous pouvez le constater, j’utilise un #my stuffcommentaire dans les fichiers de configuration personnalisés pour distinguer facilement les configurations par défaut de celles que j’ai faites (et je les mets à la fin des fichiers de configuration).
Maintenant, je voulais ajouter la directive UseDNS noà la configuration (pour accélérer les connexions), mais OpenSSH a déclaré Directive 'UseDNS' is not allowed within a Match block.

Maintenant, je me demandais s'il existait une syntaxe comme celle de End Matchmettre fin à ces blocs de correspondance?

mreithub
la source

Réponses:

30

Pour terminer un bloc de correspondance avec openssh 6.5p1 ou une version ultérieure, utilisez la ligne: Match all

Voici un morceau de code, extrait de mon /etc/ssh/sshd_configfichier:

# 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

Une ligne avec une semelle Matchne fonctionnera pas. (Cela n'a pas fonctionné pour moi, sshd a refusé de commencer)

loxaxs
la source
2
Cool, je viens juste d'essayer celui-là et il semble fonctionner comme prévu (je pourrais même utiliser la UseDNSdirective (qui ne fonctionnait pas auparavant). Accepter cela comme nouvelle réponse. - Les versions plus récentes d'OpenSSH ne semblent même pas commencez par un vide Match: lists.mindrot.org/pipermail/openssh-unix-dev/2014-avril/…
mreithub
42

Il semble qu'il n'y ait aucun moyen de mettre explicitement fin aux blocs de correspondance. À partir de la page de manuel sshd_config :

Si tous les critères de la ligne de correspondance sont satisfaits, les mots-clés des lignes suivantes remplacent ceux définis dans la section globale du fichier de configuration, jusqu'à ce qu'une autre ligne de correspondance ou la fin du fichier.

Donc, les Matchblocs doivent être à la fin du sshd_configfichier.

mreithub
la source
7
Une autre option consiste à avoir une ligne avec rien d'autre que Matchdessus, ce qui correspond effectivement à tout et est donc identique à "terminer" le bloc. Cela ne vous laissera toujours pas utiliser des directives qui ne sont pas autorisées dans les blocs de correspondance, donc cela ne vous aidera pas dans votre scénario particulier.
Nathan Bouscal
4
"Les blocs de correspondance doivent être à la fin du fichier sshd_config." Très utile pour moi et pas expliqué assez clairement (pour moi) dans la page de manuel, etc. Merci.
MountainX
0

Je pense que nous devrions mentionner la touche Matchet Hosten même temps.

Host

Restreint les déclarations suivantes (jusqu'au mot clé Hostou suivant Match) uniquement aux hôtes qui correspondent à l'un des modèles donnés après le mot clé.

Match

Restreint les déclarations suivantes (jusqu'au mot clé Hostou suivant Match) à utiliser uniquement lorsque les conditions qui suivent le mot clé Correspondance sont remplies.

Lire le manuel de man ssh_config, les deux Host *et Match allréinitialisera l'ancien bloc de restriction, peu importe qu'il s'agisse d'un Matchbloc ou d'un Hostbloc.

Simba
la source