É melhor usar chaves públicas para SSH. Então o meu sshd_config
tem PasswordAuthentication no
.
Alguns usuários nunca efetuam login, por exemplo, um usuário sftp com shell /usr/sbin/nologin
. Ou uma conta do sistema.
Para que eu possa criar esse usuário sem uma senha com adduser gary --shell /usr/sbin/nologin --disabled-password
.
Essa é uma boa / má ideia? Existem ramificações que eu não considerei?
sudo
acesso (em virtude de não terem permissões de sudo ou de permissão de sudoNOPASSWD
), a resposta que você selecionou deve ser adequada. Enviei uma edição dessa resposta para incluir a preocupação com o sudo, mas imaginei que eu o chamaria aqui enquanto isso.Respostas:
Se você tiver acesso root ao servidor e puder gerar novamente as chaves ssh para seus usuários, caso elas as percam
E
você tem certeza de que um usuário (como pessoa) não terá várias contas de usuário e precisa alternar entre aquelas em uma sessão SSH (bem, ele também pode abrir várias sessões SSH, se necessário)
E
eles nunca precisarão de acesso "físico" (via teclado + monitor ou console remoto para uma VM) ao servidor
E
nenhum usuário tem
sudo
acesso limitado por senha (ou seja, eles não têm acesso ao sudo, ou têm acesso ao sudoNOPASSWD
)Eu acho que você vai ser bom.
Temos muitos servidores em funcionamento configurados como este (apenas algumas contas precisam acessar a VM via console remoto vmware, outras se conectam apenas via SSH com pubkey auth).
fonte
PasswordAuthentication no
um problema diferente (o usuário não conseguiria fazer login).Esta pergunta mencionou originalmente o
passwd --delete <username>
que não é seguro : com isso, o campo de senha criptografada/etc/shadow
estará completamente vazio.Se você configurou sua opção
sshd
para recusar a autenticação de senha, isso é seguro com o SSH ... Mas se qualquer outro serviço em seu sistema usar autenticação por senha e não estiver configurado para rejeitar senhas nulas, isso permitirá o acesso sem uma senha! Você não quer isso.adduser --disabled-passwd
produzirá uma/etc/shadow
entrada em que o campo de senha criptografada é apenas um asterisco, ou seja,Esta é "uma senha criptografada que nunca pode ser inserida com êxito", ou seja, isso significa que a conta é válida e permite logins tecnicamente, mas torna impossível a autenticação por senha . Portanto, se você tiver outros serviços baseados em autenticação de senha no servidor, esse usuário será bloqueado.
Somente métodos de autenticação que usam algo diferente da senha da conta padrão (por exemplo, as chaves SSH) funcionarão para este usuário, para qualquer serviço que use os arquivos de senha do sistema neste sistema. Quando você precisa de um usuário que possa efetuar login apenas com chaves SSH, é isso que você deseja.
Se você precisar definir uma conta existente para esse estado, poderá usar este comando:
Há um terceiro valor especial para o campo de senha criptografada:,
adduser --disabled-login
então o campo conterá apenas um único ponto de exclamação.Como o asterisco, isso torna impossível a autenticação da senha, mas também tem um significado adicional: marca a senha como "bloqueada" para algumas ferramentas administrativas.
passwd -l
tem o mesmo efeito prefixando o hash da senha existente com um ponto de exclamação, o que novamente torna impossível a autenticação da senha.Mas aqui está uma armadilha para os incautos: no ano de 2008, a versão do
passwd
comando que vem doshadow
pacote antigo foi alterada para redefinirpasswd -l
de "bloquear a conta" para apenas "bloquear a senha". O motivo declarado é "para compatibilidade com outra versão do passwd".Se você (como eu) aprendeu isso há muito tempo, pode ser uma surpresa desagradável. Também não ajuda a questões que
adduser(8)
aparentemente ainda não estão cientes dessa distinção.A parte que desativa a conta para todos os métodos de autenticação é realmente definir um valor de data de expiração de 1 para a conta:
usermod --expiredate 1 <username>
. Antes do ano de 2008,passwd -l
ele se originava doshadow
kit de origem usado para fazer isso , além de prefixar a senha com um ponto de exclamação - mas não o faz mais.O changelog do pacote Debian diz:
As histórias de bugs para Debian bug 492307 e bug 389183 pode ser útil para compreender o pensamento por trás disso.
fonte
adduser --disabled-passwd
- por isso, se algum outro serviço permitir autenticação por senha, o usuário poderá efetuar login sem uma senha?adduser --disabled-password
especificamente torna impossível a autenticação de senha para ter sucesso nessa conta.*
para que seja a primeira coisa que as pessoas leem.passwd
código-fonte em 2008. Você não gosta quando algo que você aprendeu uma vez e depois se baseou não é mais?