Como posso permitir a autenticação de senha SSH apenas de determinados endereços IP?

103

Gostaria de permitir a autenticação de senha SSH de apenas uma certa sub-rede. Vejo a opção de proibi-lo globalmente em /etc/ssh/sshd_config:

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

Existe uma maneira de aplicar essa configuração a um intervalo selecionado de endereços IP?

ændrük
fonte

Respostas:

156

Use um Matchbloco no final de /etc/ssh/sshd_config:

# Global settings
…
PasswordAuthentication no
…

# Settings that override the global settings for matching IP addresses only
Match address 192.0.2.0/24
    PasswordAuthentication yes

Em seguida, diga ao serviço sshd para recarregar sua configuração:

service ssh reload
Gilles
fonte
1
Eu tentei isso (com 192.168.0.0/16) e quando reiniciei o serviço ssh, fiquei bloqueado. SSH recusou qualquer conexão. Alguma idéia de por que isso poderia ser?
Michael Waterfall
2
@ MichaelWaterfall É impossível contar com tão pouca informação. Certifique-se de manter um shell em execução até validar a nova configuração. Reiniciar o serviço ssh não afeta as conexões ativas.
Gilles
28
O problema provável é que você coloque o bloco Match em algum lugar no meio do seu sshd_config. As linhas de correspondência afetam todas as linhas seguintes até a próxima linha de correspondência, portanto, elas devem estar no final do arquivo.
Ken Simon
6
Apesar do recuo na resposta, sshd_confignão é Python;)
Nick T
1
@frepie O Matchbloco se estende até a próxima Matchdiretiva ou até o final do arquivo. É por isso que você precisa colocá-lo no final.
Gilles
8

Você pode adicionar:

AllowUsers [email protected].*.*, [email protected].*.*

isso altera o comportamento padrão, realmente nega todos os outros usuários de todos os hosts. Bloco de correspondência disponível no OpenSsh versão 5.1 e superior.

glooch
fonte
chamar eu permitir que um grupo, em vez de um único usuário
Lamar
@ Lamar De man sshd_config, parece que AllowGroupsfunciona da mesma forma que AllowUsers, mas AllowUsersparece ter precedência AllowGroups.
Conradkdotcom 16/02/19