No Linux (Debian Squeeze), gostaria de desabilitar o login SSH usando senha para alguns usuários (grupo selecionado ou todos os usuários, exceto root). Mas não quero desabilitar o login usando o certificado para eles.
edit: muito obrigado pela resposta detalhada! Por algum motivo, isso não funciona no meu servidor:
Match User !root
PasswordAuthentication no
...mas pode ser facilmente substituído por
PasswordAuthentication no
Match User root
PasswordAuthentication yes
Experimente
Match
emsshd_config
:Ou por grupo:
Ou, como mencionado no comentário, por negação:
Observe que a correspondência é efetiva "até outra linha de correspondência ou até o final do arquivo". (o recuo não é significativo)
Match
emsshd_config
funciona bem. Você deve usarMatch all
para encerrar o bloco de correspondência se estiver usando o openssh 6.5p1 ou superior. Exemplo:Por algum motivo de segurança, você pode precisar bloquear o acesso SSH de determinado usuário à caixa Linux.
Edite o arquivo sshd_config, a localização às vezes será diferente dependendo da distribuição do Linux, mas geralmente está em /etc/ssh/.
Abra o arquivo enquanto estiver conectado como root:
Insira uma linha no final do arquivo de configuração: -
Salve-o e reinicie os serviços SSH. Basicamente username1, username2, username3 e username4 O login SSH não é permitido.
Execute o comando abaixo para reiniciar o mesmo: -
A exigência foi feita. Por favor, pegue o ssh desses usuários e você receberá o erro "Acesso negado"
Existem algumas maneiras de fazer isso - primeiro, você pode executar um segundo daemon sshd em uma porta diferente com uma configuração diferente - é um pouco complicado, mas com algum trabalho de chroot deve funcionar bem.
Além disso, você pode permitir a autenticação de senha, mas bloquear as senhas para todos, exceto para um usuário. Os usuários com senhas bloqueadas ainda poderão se autenticar com chaves públicas.
você pode simplesmente ir para o arquivo /etc/ssh/sshd_config e adicionar uma linha Para permitir --> AllowUsers user1 Para negar ---> DenyUsers user2
podemos permitir/negar login para um determinado conjunto de hosts usando os arquivos hosts.allow ou hosts.deny localizados na pasta /etc
A ordem das instruções de configuração conta ... minha solução para o arquivo
/etc/ssh/sshd_config
: