Como posso bloquear minha própria conta do login ssh remoto com senha?


10

Não quero desabilitar completamente o login remoto com senha, mas desejo que minha conta seja acessível apenas com autenticação de par de chaves (há outros usuários que desejam usar senhas para efetuar login). É possível alterar isso por usuário, idealmente sem alterar as configurações do sistema?

E para deixar claro, minha conta tem acesso ao sudo, então não quero bloquear a senha.

Respostas:


9

Você pode usar a opção Corresponder em sshd_config

Match Apresenta um bloco condicional. Se todos os critérios na linha de correspondência forem atendidos, as palavras-chave nas linhas a seguir substituem as definidas na seção global do arquivo de configuração, até outra linha de correspondência ou o final do arquivo. [1]

Portanto, no final desse arquivo, você pode especificar:

Match User yourusername
PasswordAuthentication no

Veja man 5 sshd_configpara todas as opções disponíveis.

[1] http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&sektion=5


Isso já está bom, mas quero ver se consigo fazer sem editar o sshd_config.
Phunehehe 27/05

2
. Dado que você está querendo fazer uma mudança do sistema, ou seja, aquele que não ter impacto sobre outros usuários, que parece ser improvável ...
jasonwryan

e quanto a ~ / .ssh / config? Você já tentou incluir as configurações lá?
ttyS0

1
AFAK ~ / .ssh / config para o cliente, não o servidor.
Adam Byrtek

1

A resposta de jasonwryan será o caminho certo para fazer essa alteração. A única adição que eu faria é que você poderia definir a correspondência para ser baseada em grupo, para que qualquer usuário do grupo de roda fosse obrigado a usar autenticação de chave, enquanto outros poderiam usar senhas.

Sei que você deseja fazer isso sem alterar os arquivos de configuração do sistema, mas há um bom motivo para isso não ser possível. Na sua opinião, faz sentido que o usuário possa instituir uma política de login mais segura, mas apenas porque, em sua opinião, é uma opção mais segura não muda o fato de ainda haver uma alteração nos requisitos de login do sistema para um usuário remoto.

Para entender por que isso é um problema, imagine o cenário ao contrário. O administrador do sistema (que pode alterar os arquivos de configuração do sistema) define o sistema apenas para login baseado em chave. Em seguida, algum usuário aparece e apenas acessa seu próprio arquivo de usuário e define sua conta para permitir a autenticação de senha, substituindo a política do sistema. BEEEEEEP . Problema de segurança!

Isso explica por que o tipo de alteração que você deseja fazer só é possível no arquivo de configuração do sistema?


É difícil pensar assim, já que se eu fosse um usuário normal e não sudo, posso configurar minhas chaves com facilidade e bloquear a senha, tornando minha conta "autenticação apenas por chave".
Phunehehe 27/05

Em outro pensamento, eu poderia bloquear minha senha toda vez que estou prestes a sair, o que deve proibir todo o login de senha da minha conta. Depois que eu estiver conectado com minhas chaves, posso ativar a senha novamente no sudo. Obviamente, não é uma boa solução, mas me faz pensar que é possível.
Phunehehe 27/05

1
Você só pode fazer isso porque o administrador do sistema permitiu a autenticação de chave e você está apenas adicionando restrições para si mesmo, sem alterar nada. Desabilitar sua senha apenas a define como um valor inválido, não altera a autenticação que o daemon do sistema permite.
Caleb

"adicionar restrições para si mesmo, não mudar nada", é exatamente o que estou querendo fazer.
Phonehehe 27/05

@ Caleb: Não haveria problema de segurança ao permitir authorized_keyscolocar mais restrições, como quer o phunehehe. Por exemplo, authorized_keyspode restringir certas chaves a certos comandos.
Gilles 'SO- stop be evil'

0

Adicionando restrições para si mesmo, sem alterar nada

Por que não no lado do cliente, se é certo que o ssh seria o cliente a ser usado para tentativas de login? Se sim, tente fazer alterações no ssh_config em vez de sshd_config. Verifique o parâmetro 'PasswordAuthentication No' e PreferredAuthentications

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.