Como configurar o SSH sem senha para todos os usuários

3

Eu posso configurar o SSH sem senha para um único usuário, fazendo o seguinte:

1) Gere um par de chaves RSA para a máquina local em ~ / .ssh

2) Copie a chave pública da máquina local para as teclas ~ / .ssh / authorized_keys da máquina remota

Mas há uma maneira de fazer essa ação para todos os usuários? Talvez fazendo os mesmos passos acima em /root/.ssh ou algo assim? Ou existe uma boa maneira de o usuário root implementar chaves e modificar listas de chaves_autorizadas no diretório ~ / .ssh de todos os usuários?

Obrigado.

    
por Evan W 29.05.2014 / 20:24

2 respostas

2

Se você deseja fornecer acesso sem senha para todos os usuários a um único host remoto, o OpenSSH suporta a autenticação de chave pública baseada em host que o usuário da chave do host do cliente autentica no servidor e / etc / ssh / shosts .equiv para autorizar usuários.

Há um bom guia sobre como configurá-lo aqui: link

    
por 01.06.2014 / 11:45
0

Que tal algo assim?

for u in $USERLIST; do
    su $u
    ssh-keygen [options] -f /home/$u/.ssh/id_rsa
    scp /home/$u/.ssh/id_rsa.pub $REMOTEHOST:/home/$u/.ssh/authorized_keys
    exit
done

Claro que isso envolve digitar muitas senhas para o scp. Você poderia fazer tudo como root para evitar digitar senhas (supondo que seu root ssh sem senha está configurado), mas você teria que chown everything:

for u in $USERLIST; do
    ssh-keygen [options] -f /home/$u/.ssh/id_rsa

    # assuming "users" is the common group on the system
    chown $u:users /home/$u/.ssh/id_rsa

    # use -a to preserve ownership
    rsync -av /home/$u/.ssh/id_rsa.pub $REMOTEHOST:/home/$u/.ssh/authorized_keys
done

E, claro, você precisa garantir que o diretório pessoal e o diretório .ssh de cada usuário tenham as permissões corretas (em ambas as máquinas) quando terminar.

    
por 30.05.2014 / 18:36