autenticação de cliente SSH como usuário não raiz

2

No meu sistema, a autenticação do cliente ssh era permitida para o root, mas eu queria que a autenticação do cliente ssh fosse permitida somente para usuários não-root. Para desabilitar o ssh como root, eu mudei o PermitRootLogin yes para PermitRootLogin no , mas agora eu não sou capaz de usar o ssh na minha plataforma.

Alguém pode me informar como posso habilitar a autenticação de cliente ssh somente para usuários não-root?

    
por Ram 04.11.2013 / 08:22

2 respostas

3

A configuração do servidor ssh é feita em um arquivo chamado / etc / ssh / sshd_config. Você deve abrir este arquivo e verificar o seguinte:

1) Existe alguma das seguintes instruções?

AllowUsers ...
AllowGroups ...
DenyUsers ...
DenyGroups ...

Nesse caso, você terá que alterá-lo para permitir a conexão como você mesmo.

2) Existe uma instrução dizendo:

PasswordAuthentication no

Se houver, significa que a autenticação do ssh pode ocorrer somente através de chaves criptográficas. Como você obviamente não tem um, isso efetivamente impede você de entrar no sistema.

Altere isso para

PasswordAuthentication yes

para que você possa testar se essa é toda a solução para o seu problema. Uma vez que você tenha se persuadido, o ssh funciona para você também, estabeleça uma chave criptográfica para si mesmo e desative PasswordAuthentication novamente. Na Net existem muitos guias úteis sobre como usar chaves em vez de senhas para autenticação. Faça. Sua segurança irá melhorar muito.

Para completar este teste, você terá que reiniciar seu servidor SSH, caso contrário as mudanças introduzidas em / etc / ssh / sshd_config não entrarão em vigor. Fazer isso depende do seu sistema:

 sudo service ssh restart

ou      sudo systemctl daemon-reload      sudo systemctl restart sshd

(o primeiro é para Debian e derivados, o segundo para Arch Linux, Fedora e, em geral, sistemas systemd).

3.) Existe uma instrução

PermitRootLogin no

enquanto você está tentando fazer login como root? Se assim for, altere o não acima para um sim.

Se isso ainda não resolver o problema, você terá que fornecer detalhes de depuração, que podem ser obtidos emitindo na máquina cliente

ssh me@my_pc -vv

que gera uma quantidade razoável de dados, útil para essa tarefa. Existe uma opção equivalente (e muito mais informativa, por razões óbvias de segurança) a ser emitida no servidor: primeiro você precisa parar o serviço,

 sudo service ssh stop
 sudo systemctl stop sshd

e reinicie-o com

 sudo /usr/sbin/sshd -Dd
 sudo /usr/bin/sshd -Dd

novamente para os dois tipos de sistemas (não tenho certeza quanto às distribuições systemd além do Arch, talvez a primeira forma se aplique a todos os sistemas, exceto o Arch).

Isso gerará informações necessárias para a depuração.

    
por 04.11.2013 / 12:08
0

Não tenho certeza do tipo de Linux / Unix que você está usando. Costumo usar o Ubuntu, onde é assim:

O login por SSH como usuário normal é permitido por padrão. Você pode fazer o login por

ssh -l myuser myhost

ou por

ssh myuser@myhost

Você já tentou isso? Se sim, posso pensar nos seguintes motivos comuns para falha:

  • Dependendo do seu Linux / Unix, pode ser necessário adicionar o usuário a um grupo específico (por exemplo, ssh) para permitir que ele faça o login.
  • Você também deve verificar se tem permissão para fazer login usando senhas ou usando apenas chaves públicas (nesse caso, pode ser necessário gerar uma chave ou especificá-la durante o login).
  • Você pode ter acesso restrito a determinados IPs e está usando outro.

Para depurar, tente usar -vvv ao tentar efetuar login com o ssh, pois isso fornece muitas mensagens de depuração sobre o que o SSH está tentando e o que acontece.

    
por 04.11.2013 / 09:14

Tags