Como criar um usuário do Linux sem uma senha, mas capaz de defini-la?

8

Eu tenho um nome de usuário e uma chave SSH para um cara (hipotético) e preciso dar a ele acesso de administrador a um servidor Linux (Ubuntu).

Quero que ele consiga fazer login via SSH e, em seguida, defina sua senha por uma conexão segura, em vez de passar a senha.

Eu sei como fazer a senha expirar e forçá-lo a redefini-la no primeiro login. Mas isso não funciona, a menos que ele já tenha uma senha, que eu tenho que lhe dizer.

Pensei em deixar a senha em branco - o SSH não permitiria o login, mas qualquer um pode suentrar no usuário.

Minha pergunta é: existem práticas recomendadas para criar contas dessa maneira? Ou definir uma senha padrão é inevitável?

Leonid Shevtsov
fonte

Respostas:

7

Você tem a chave pública SSH dele? Coloque-o em .ssh/authorized_keysseu diretório pessoal. Depois de fazer isso (e as permissões são restritivas o suficiente - o SSH é exigente quanto a isso.) Ele poderá fazer login sem precisar de uma senha ... e ele nunca precisará de uma.

A melhor parte é que sua chave pública não é sensível, portanto, distribuí-la por e-mail ou bate-papo é bom, e sua chave privada nunca sai do computador.

Ladadadada
fonte
1
Ele precisará de uma senha sudo, não é?
Leonid Shevtsov
1
Você pode permitir sudo sem senha.
MDMarra 01/09/12
1
Com uma linha como USERNAME = NOPASSWD: /usr/local/bin/pwreset.shin /etc/sudoerse o script pwreset.shexecutando o comando, /usr/bin/passwd USERNAMEele não precisará de uma senha para (re) definir sua própria senha.
Ansgar Wiechers
0

Basta colocar um arquivo de texto com a senha dentro da casa dos usuários com direitos 600. O usuário efetua login com a chave altera a senha e exclui o arquivo. Com um skript com suid bit definido, você pode até criar algo como passwd <arquivo de texto sem dar ao usuário o direito de ler o arquivo (os direitos seriam 060 com group = root)

Erwin
fonte
-2

Definir uma senha padrão é inevitável. Meu procedimento seria:

1) gere uma senha segura e aleatória (diferente para cada usuário). Eu uso o gerador de senhas nas configurações da conta do OSX, mas você pode usar um site como http://strongpasswordgenerator.com

2) Forneça a senha a eles com segurança, por exemplo, pessoalmente ou via http://www.privnote.com

3) force uma redefinição no primeiro login, como você já sabe fazer

Oliver Kohll
fonte
Nunca , sob nenhuma circunstância, use qualquer tipo de gerador de senhas on-line (ou verificador).
Ansgar Wiechers
@AnsgarWiechers, você pode apoiar essa afirmação com um bom argumento?
Zoredache
Muito envolvido que você não consegue controlar. Mesmo que o código seja realmente JavaScript em execução no navegador: você analisa o script todas as vezes antes de usá-lo para garantir que ele ainda não envie a senha para lugar algum?
Ansgar Wiechers
É por isso que você diz para gerar algumas centenas de senhas e escolher uma aleatoriamente.
Grant
@Grant: Mesmo se você escolher um para fora de algumas centenas de senhas, um atacante ainda seria até algumas centenas de suposições, que são muito muito fácil de força bruta. Existem opções suficientes disponíveis para gerar senhas aleatórias localmente, sem nenhum tipo de acesso à web envolvido. Se você se preocupa com segurança: use um deles.
Ansgar Wiechers