Restrinja o acesso SSH baseado em senha por usuário, mas permita a autenticação de chave

21

É possível desativar o acesso do PASSWORD SSH ao usuário, mas permitir a autenticação de chave por usuário? Quero dizer, eu tenho um usuárioA que eu não quero fornecer acesso baseado em senha, mas não quero que ele use apenas autenticação de chave para acessar o (s) servidor (es). obrigado

giro
fonte
Possível duplicata de como desativar o login SSH com senha para alguns usuários?
precisa saber é o seguinte

Respostas:

49

Você pode adicionar seções "Corresponder" para corresponder a usuários ou grupos específicos na parte inferior do sshd_config, como:

Match user stew
PasswordAuthentication no

ou

Match group dumbusers
PasswordAuthentication no
Estufado
fonte
9
Eu evitaria o recuo, pois sugere que apenas as linhas recuadas são afetadas Matchquando, na realidade, toda a configuração é afetada até a próxima Matchdiretiva. Pode ser confuso para alguém não familiarizado com a sintaxe.
Michael Mior
2
@MichaelMior, existe uma maneira de "EndMatch"?
Nick T
4
@NickT Matchfunciona até a próxima Matchou Hostpalavra-chave. Você poderia apenas usar Match user *.
Michael Mior
@MichaelMior Isso significa que, se você usar Match user ZaQwEdCxS, poderá tornar um conjunto de linhas de configuração utilizável por ninguém, temporária ou permanentemente?
Tripp Kinetics
Isso significaria que todas as linhas de configuração a seguir seriam aplicadas apenas aos usuários nomeados ZaQwEdCxS. Se você tiver uma pergunta diferente, faça uma nova pergunta.
Michael Mior
4

Basta bloquear as senhas dos usuários que você não deseja fazer login com senhas:

usermod -L <user>

Em seguida, coloque uma chave pública válida em seu .ssh/authorized_keysarquivo e eles só poderão efetuar login com a chave privada correspondente, mas não com uma senha.

Nota: Isso quebrará o sudo, a menos que o usuário tenha NOPASSWD: em sua entrada de visudo

Oliver
fonte
8
Isso também irá quebrar o sudo. Talvez não seja um problema neste caso, mas merece menção.
EEAA
Sim, isso é verdade. Eu deveria ter mencionado isso.
826 Oliver
1
Algumas configurações OpenSSH (por exemplo, eu acho que o Ubuntu 14.04 na configuração padrão) não permitir que os usuários trancados em, nem mesmo através authorized_keys
Nils Toedtmann
@NilsToedtmann, você pode citar uma fonte para verificação? Isso seria muito importante notar na resposta também, se sim.
Metagrapher
-3

você deveria olhar

/etc/ssh/sshd_config

Eu acho que o que você está procurando é

PasswordAuthentication yes

mude para não e não esqueça de reiniciar o sshd

alexus
fonte
2
Estou ciente disso - embora seja uma configuração GLOBAL - quero uma opção mais granular - foi por isso que disse "base por usuário" - quero apenas isso para alguns usuários (usado para comunicação de cluster interno entre os servidores no cluster) - não para todos os usuários
giro
Ah, certo, me desculpe eu não lê-lo corretamente, então o que @stew recomendado é um caminho a percorrer
alexus