SSHd restrição por base de usuário

8

Eu preciso restringir certos usuários para que eles possam usar apenas o SSH usando chaves ssh e outros usuários possam fazer o login usando uma chave ou senha.

um exemplo:

Eu gostaria que o usuário root pudesse logar remotamente (através do sshd) usando a chave, então nenhuma senha seria aceita (mesmo se a senha estivesse certa)

e para outros usuários (todos no sistema) eles podem fazer login usando a chave e / ou senha

como eu faria isso?

    
por alexus 04.02.2010 / 22:15

3 respostas

1

O que eu faria é definir /etc/sshd/sshd_config como:

PermitRootLogin without-password

apenas para segurança extra e para evitar que a senha de root seja bloqueada (isso só permitiria ao root efetuar login usando uma chave)

Em vez disso, usaria AllowGroups em vez de AllowUser , pois, para mim, seria mais conveniente adicionar usuários a um grupo em vez de sshd_config , mas isso poderia depender de suas preferências pessoais.

    
por 05.03.2010 / 00:40
11

Acho que o que você quer é "Match User". Você o usa para corresponder a um nome de usuário e, em seguida, recuar uma série de configurações 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 somente ao SFTP do chroot às vezes para clientes.

    
por 05.03.2010 / 02:13
2

Configure o ssh da seguinte forma:

nano /etc/ssh/sshd_config

AllowUsers username1 username2 username3

Reinicie o SSH

Em seguida, forneça as chaves para aqueles que você gostaria de evitar o uso de senhas.

ssh-keygen é usado para gerar esse par de chaves para você. Aqui está uma sessão em que seu próprio par de chaves privadas / públicas é criado:

#ssh-keygen -t rsa

O comando ssh-keygen -t rsa iniciou a criação do par de chaves.

Eu não inseri uma frase secreta para minha configuração (a tecla Enter foi pressionada)

A chave privada foi salva em .ssh / id_rsa. Este arquivo é somente leitura e somente 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 é então copiado no arquivo .ssh / authorized_keys do sistema para o qual você deseja executar o SSH, sem que seja solicitada uma senha.

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

Finalmente, bloqueie a conta (a autenticação por chave ainda será possível).

# passwd -l username1
    
por 04.02.2010 / 22:21

Tags