Como tornar um usuário capaz de efetuar login com chaves ssh, mas não com uma senha?


17

Gostaria de criar um usuário e não tenho senha. Como você não pode fazer login com uma senha. Eu quero adicionar chaves a suas chaves autorizadas usando root. Isto é para o meu sistema de backup automatizado.

Respostas:


26

O uso de passwd -dé completamente errado , pelo menos no Fedora , em qualquer distribuição Linux baseada em shadow-utils. Se você remover a senha passwd -d, significa que qualquer pessoa poderá efetuar login nesse usuário (no console ou gráfico) sem fornecer senha.

Para bloquear logins com autenticação de senha, execute , que bloqueia a conta, tornando-a disponível apenas para o usuário root. O bloqueio é realizado renderizando a senha criptografada em uma cadeia inválida (prefixando a cadeia criptografada com uma!).passwd -l username

Qualquer tentativa de login, local ou remoto, resultará em uma "senha incorreta" , enquanto o login da chave pública ainda estará funcionando. A conta pode ser desbloqueada com .passwd -u username

Se você deseja bloquear completamente uma conta sem excluí-la, edite /etc/passwde defina /sbin/nologinou /bin/falseno último campo. Isso resultará em "Esta conta não está disponível no momento". para qualquer tentativa de login.

Por favor, consulte a página do manual passwd (1).


@ guido: rvs não será notificado da sua resposta. Você precisaria adicionar um comentário à resposta dele para isso (eu já fiz). Observe que os leitores podem ler sua resposta antes da dele. Você deve escrever respostas que respondam diretamente à pergunta. Bem feito para apontar este! Isso se aplica à maioria das distribuições Linux (aquelas que usam os utilitários shadow do Linux).
Gilles 'SO- stop be evil'

@ Gilles: desculpe, eu sou novo no stackexchange; Eu só apontou um presente um pouco mal porque era como sugerindo usuários para contas de configuração sem senha, e foi aceite e marcado como útil ...
guido

@ guido: Não se preocupe, eu estava apenas explicando como tornar o seu aviso mais eficaz. De fato, em casos extremos em que uma resposta está perigosamente errada, seria apropriado sugerir uma edição adicionando um aviso ou correção (espero que você não encontre essas situações com muita frequência no site).
Gilles 'SO- stop be evil'

@ guido: Na verdade, no debian Squeeze (eu não sei sobre lenny ou etch) que responde DEFINIR. Ele não permite que ninguém, exceto o root, faça o login, permite autorizar chaves, mas não possui senha menor, apenas não aceita senha. Fiquei surpreso que você pudesse "excluir a senha" e que funcionaria dessa maneira. Mas ele fez exatamente o que eu queria e exatamente o que essa resposta faz e foi a única resposta, então eu apenas a aceitei. Esta resposta faz mais sentido e vou aceitá-la porque estou disposto a apostar em outras distos que permitem que qualquer pessoa faça login por sua senha sem senha, ao contrário do debian. De qualquer forma boa resposta.

1
@ acidzombie24, @mattdn: eles poderiam ter removido o nullok do pam.d / password-auth se o debian usar o pam (acho que sim, mas não sou especialista em debian). No entanto, o passwd (1) manpage cleary afirma que o argumento -d é criar contas sem senha; portanto, qualquer especulação específica de distribuição aqui é secundária, pois a pergunta era muito geral.
guido

2

Você não está perguntando especificamente ao daemon SSH, para não aceitar a autenticação baseada em senha, mas a autenticação de chave / frase secreta?

Procure por alterações em sshd_config.

Conjunto

PasswordAuthentication No
PreferredAuthentications publickey,hostbased,keyboard-interactive
Protocol 2,1

Procure mais parâmetros de configuração em man ssh_config


0

Apenas não defina a senha para o usuário. Se já houver uma senha, remova-a usando passwd -l <username>.

Mas ainda seria possível fazer login como esse usuário - usando as teclas autorizadas ou via su ou sudo de alguma conta privilegiada.


1
Conforme indicado por guido , passwd -da conta fica sem senha, como em, você pode efetuar login sem precisar digitar uma senha. Use passwd -lpara bloquear a conta (pense em fornecer uma senha impossível de digitar).
Gilles 'SO- stop be evil'

Adicionei um aviso à sua postagem, porque ela é perigosa. Deixarei que você decida se deseja corrigir sua resposta ou excluí-la (se você achar que o guido é suficiente) ou refutar o aviso.
Gilles 'SO- stop be evil'

Por que, oh, por que as pessoas aceitam a resposta que nem funciona?
mathepic

@mathepic: Funciona no debian. Exatamente da maneira que eu perguntei

tem certeza de que um usuário não privilegiado não pode supara o usuário?
mattdm
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.