Restrição de SSHd por usuário

9

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?

alexus
fonte

Respostas:

0

O que eu faria é definir de /etc/sshd/sshd_configmodo que:

PermitRootLogin without-password

apenas para segurança extra e para evitar que a senha do root seja bloqueada (isso permitiria que o root efetue login apenas com uma chave)

Em vez AllowGroupsdisso AllowUser, eu usaria em vez de , pois para mim seria mais conveniente adicionar usuários a um grupo do que a, sshd_configmas isso poderia depender de suas preferências pessoais.

golan
fonte
13

Eu acho que o que você quer é "Corresponder Usuário". Você o usa para corresponder a um nome de usuário e recua uma série de definições de configuração que se aplicam especificamente a esse usuário.

Match User Joe
  PasswordAuthentication no

Match User Jane
  PasswordAuthentication yes

Eu uso isso para configurar o acesso chroot somente por SFTP às vezes para clientes.

Devin Ceartas
fonte
Observe que nem todas as configurações podem ser escritas no Matchbloco. Veja man 5 sshd_configos detalhes.
ynn 7/12/19
2

Configure o ssh da seguinte maneira:

nano /etc/ssh/sshd_config

AllowUsers username1 username2 username3

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:

#ssh-keygen -t rsa

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.

#scp id_rsa.pub remote system:~/.ssh/authorized_keys

Por fim, bloqueie a conta (a autenticação de chave ainda será possível.)

# passwd -l username1
Patrick R
fonte
não é isso que estou procurando. Vamos dizer que eu quero raiz que estar conectado utilizando apenas chaves e outros usuários podem ser registrados com a chave ou senha
alexus
então não bloqueie a conta com passwd -l nome_do_usuário1
Patrick R