Eu tenho dois usuários em minha máquina servidor ssh, user_A e user_B. user_B tem permissão para fazer login com chave privada apenas por motivos de segurança, porque ele precisa fazer login remotamente. Tudo isso funciona. Meu problema: Como evito que o usuário_A faça login remotamente com nome de usuário/senha, porque ele só precisa fazer login na rede local? De acordo com a página de manual do sshd, a notação CIDR é permitida.
O que eu fiz:
#605433 sugere
AllowUsers [email protected]
, então me adaptei paraAllowUsers [email protected]/24
#740700 sugere:
Match 192.168.0.10/24
AllowGroups PrivateSubnetSshUsers
Minha versão parece
Match 192.168.10.0/24
AllowUsers user_A
Contra as minhas expectativas, o usuário_A ainda pode fazer login em 192.168.1.220 em ambos os casos. Eu tinha feito algumas systemctl restart sshd
antes de tentar novamente.
O que eu esqueço aqui?
De acordo com o manual ( https://www.man7.org/linux/man-pages/man5/sshd_config.5.html ), deveria funcionar assim:
Com a primeira opção você bloqueia todos os usuários, exceto o usuário_B. A segunda opção permite um login se você se conectar a partir de uma determinada rede e for membro do grupo PrivateSubnetSshUsers. A terceira opção força o usuário_B a usar chaves.
Não é muito simples, mas deve funcionar.
Primeiro, há um erro na sua
Match
afirmação como deveria serMatch address 192.168.10.0/24
e não apenasMatch 192.168.10.0/24
. Sua versão apresenta uma mensagem de erro ao tentar reiniciar o sshd. Você não conseguiu um?Em segundo lugar, você deve
Match
usar o nome de usuário, não o endereço. O seguinte deve funcionar:POR FALAR NISSO. Dos meus testes,
AllowUsers [email protected]/24
sozinho (ou seja, não em bloco) tambémMatch
funciona (então você deve ter feito algo errado ao testá-lo), mas restringe todos os outros usuários , exceto o usuário_A, de fazer login (e o usuário_A pode fazer login apenas na rede especificada) . Se estiver dentro de um bloco como acima, então o usuário_A poderá fazer login apenas na rede especificada e todos os outros usuários poderão fazer login a partir de qualquer endereço IP.Match
Estou extremamente envergonhado. Claro.o caso está resolvido, como Raj havia indicado corretamente. Minha culpa, e portanto constrangimento, foi sempre editar o ssh_config, e não o sshd_config. Minhas desculpas e obrigado novamente pela sua ajuda!