Adicione um usuário sem senha, mas com SSH e chave pública

33

Quero adicionar um usuário ao Red Hat Linux que não use uma senha para efetuar login, mas use uma chave pública para ssh. Isso estaria na linha de comando.

user119776
fonte
useradd --password-disable e adduser --password disable. Examinei as opções para ambos e não vejo a senha desabilitada como uma opção para ambos.
usar o seguinte comando
Você sabe como configurar um login de chave ssh em geral? Acho que a conta só precisa não ser bloqueada, o que implicaria a existência de uma senha ativa. Pode ser uma senha longa que ninguém realmente conhece.
Micah Yoder
Eu tenho a chave e sei que preciso criar a pasta no diretório do usuário e colar a parte pública lá. Posso tentar dessa maneira, mas pensei que também precisava desativar a senha do usuário.
user119776
Em vez de fazer outra postagem mostrando como adicionar um usuário, concordo com Lambert. Você precisa se concentrar especificamente na parte desta tarefa com a qual está tendo problemas. Se você não sabe nem como adicionar um usuário, deve começar pequeno e avançar. Eu acredito que você só precisa criar o usuário, não definir nenhuma senha e colocar a chave em /home/username/.ssh/authorized_keys.
Baazigar

Respostas:

37

Comece criando um usuário:

useradd -m -d /home/username -s /bin/bash username

Crie um par de chaves do cliente que você usará para ssh:

ssh-keygen -t dsa

Copie a chave pública /home/username/.ssh/id_dsa.pubno host RedHat para/home/username/.ssh/authorized_keys

Defina as permissões corretas nos arquivos no host RedHat:

chown -R username:username /home/username/.ssh
chmod 700 /home/username/.ssh
chmod 600 /home/username/.ssh/authorized_keys

Verifique se a autenticação de chave pública está ativada no host RedHat:

grep  PubkeyAuthentication /etc/ssh/sshd_config
#should output:
PubkeyAuthentication yes

Caso contrário, altere essa diretiva para yes e reinicie o sshdserviço no host RedHat.

No cliente, inicie uma sshconexão:

ssh username@redhathost

Deve procurar automaticamente a chave id_dsano ~/.ssh/. Você também pode especificar um arquivo de identidade usando:

ssh -i ~/.ssh/id_dsa username@redhathost
Lambert
fonte
3
Na verdade, não esqueci o bloqueio de senha. Como eu simplesmente não o defini, a senha do usuário recém-criado é automaticamente bloqueada.
Lambert
3
use RSA em vez de DSA
sg
você percebe que o comando "ssh-keygen -t dsa" criará chaves para o usuário atual, ele poderá substituir suas próprias chaves
yarun pode
15

No Ubuntu, você pode adicionar o usuário com:

adduser --disabled-password <username>

Em seguida, crie um .ssh/authorized_keysarquivo no diretório inicial com a chave pública.

Mitar
fonte
7

Você poderia usar:

usermod --lock <username>

Na página do manual:

Bloqueie a senha de um usuário. Isso coloca um '!' na frente da senha criptografada, desativando efetivamente a senha. Você não pode usar esta opção com -p ou -U. Nota: se você deseja bloquear a conta (não apenas acessar com uma senha), também deve definir EXPIRE_DATE como 1.

Paul Mitchell
fonte