Preciso restringir certos usuários para que eles possam usar apenas SSH usando chaves ssh e outros usuários possam fazer login usando chave ou senha.
um exemplo:
eu gostaria que o usuário root pudesse efetuar login remotamente (através do sshd) usando a chave, para que nenhuma senha seja aceita (mesmo se a senha estiver correta)
e para outros usuários (todos no sistema), eles podem fazer login usando chave e / ou senha
Como eu faria isso?
Match
bloco. Vejaman 5 sshd_config
os detalhes.Configure o ssh da seguinte maneira:
Reinicie o SSH
Em seguida, forneça as chaves para quem você gostaria de evitar o uso de senhas.
O ssh-keygen é usado para gerar esse par de chaves para você. Aqui está uma sessão em que seu próprio par de chaves públicas / privadas é criado:
O comando ssh-keygen -t rsa iniciou a criação do par de chaves.
Não inseri uma senha para minha configuração (a tecla Enter foi pressionada).
A chave privada foi salva em .ssh / id_rsa. Este arquivo é somente leitura e apenas para você. Ninguém mais deve ver o conteúdo desse arquivo, pois ele é usado para descriptografar toda a correspondência criptografada com a chave pública.
A chave pública é salva em .ssh / id_rsa.pub.
Seu conteúdo é copiado no arquivo .ssh / allowed_keys do sistema ao qual você deseja fazer o SSH sem que seja solicitada uma senha.
Por fim, bloqueie a conta (a autenticação de chave ainda será possível.)
fonte