OpenSSH: Como finalizar um bloco de correspondência

49

Estou usando um Matchbloco no OpenSSH /etc/ssh/sshd_config(no debian) para restringir alguns usuários ao SFTP:

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

Como você pode ver, eu uso um #my stuffcomentário nos arquivos de configuração personalizados para distinguir facilmente as configurações padrão daquelas que fiz (e as coloquei no final dos arquivos de configuração).
Agora eu queria anexar a diretiva UseDNS noà configuração (para acelerar os logins), mas o OpenSSH disse Directive 'UseDNS' is not allowed within a Match block.

Agora, eu queria saber se existe uma sintaxe como End Matchfinalizar esses blocos de correspondência?

mreithub
fonte

Respostas:

30

Para terminar um bloco de correspondência com o openssh 6.5p1 ou superior, use a linha: Match all

Aqui está um pedaço de código, retirado do meu /etc/ssh/sshd_configarquivo:

# 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

Uma linha com uma sola Matchnão funcionará. (Não funcionou para mim, o sshd se recusou a começar)

loxaxs
fonte
2
Legal, eu apenas tentei isso e parece funcionar conforme o esperado (eu até poderia usar a UseDNSdiretiva (que não funcionava antes). Aceitando isso como a nova resposta. - As versões mais recentes do OpenSSH aparentemente nem sequer comece com um vazio Match: lists.mindrot.org/pipermail/openssh-unix-dev/2014-Abril/…
mreithub 17/16
42

Parece que não há como terminar explicitamente os blocos de correspondência. Na página de manual do sshd_config :

Se todos os critérios na linha de correspondência forem atendidos, as palavras-chave nas linhas a seguir substituem as definidas na seção global do arquivo de configuração, até outra linha de correspondência ou o final do arquivo.

Portanto, os Matchblocos precisam estar no final do sshd_configarquivo.

mreithub
fonte
7
Outra opção é ter uma linha com nada além Matchdela, que corresponde efetivamente a tudo e, portanto, é o mesmo que 'terminar' o bloco. No entanto, isso ainda não permitirá que você use diretivas que não são permitidas nos blocos de correspondência, portanto, não ajudará em seu cenário específico.
Nathan Bouscal
4
"Os blocos de correspondência precisam estar no final do arquivo sshd_config." Muito útil para mim e não explicado com clareza suficiente (para mim) na página de manual, etc. Obrigado.
MountainX
0

Acho que devemos mencionar a chave Matche Hostao mesmo tempo.

Host

Restringe as seguintes declarações (até a próxima Hostou Matchpalavra - chave) para serem apenas para os hosts que correspondem a um dos padrões fornecidos após a palavra-chave.

Match

Restringe as seguintes declarações (até a próxima Hostou Matchpalavra - chave) a serem usadas apenas quando as condições após a palavra-chave Match forem atendidas.

A leitura do manual de man ssh_configambos Host *e Match allredefinirá o antigo bloco de restrição, não importa se é um Matchbloco ou um Hostbloco.

Simba
fonte