SSH pergunta a senha quando invocá-la no script

0

Eu tenho um mestre e quatro computadores escravos. Eu gerava rsa chave pública / privada no PC mestre. Então eu copiei publickey ( id_rsa.pub ) para máquinas escravas como authorized_keys .

Ele não pergunta a senha quando invoco o SSH assim no terminal do PC mestre:

ssh –o UserKnownHostsFile=/dev/null –o StrictHostKeyChecking=no hduser@slave1 

Eu escrevi este script para fazer o login automático de máquinas escravas sem pedir senha.

SERVER_LIST='cat /home/hduser/slaves' # slave1, slave2 ...
USERNAME=hduser
for host in $SERVER_LIST; do 
ssh –t –o UserKnownHostsFile=/dev/null –o StrictHostKeyChecking=no -l ${USERNAME} ${host}; 
done

O SSH está pedindo senhas de escravos quando eu uso este script. Estou recebendo esta mensagem quando usar o SSH com a opção -vv :

Alterei as permissões no PC mestre e no PC escravo.

sudo chmod 700 -R ~/.ssh
sudo chown hduser ~/.ssh

Ainda está pedindo senha. o que estou perdendo? Como posso consertar isso?

    
por Eyüp Alemdar 21.03.2014 / 16:58

2 respostas

0

Tente usar o argumento -i . Do homem:

-i identity_file
         Selects a file from which the identity (private key) for RSA or
         DSA authentication is read.  The default is ~/.ssh/identity for
         protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro-
         tocol version 2.  Identity files may also be specified on a per-
         host basis in the configuration file.  It is possible to have
         multiple -i options (and multiple identities specified in config-
         uration files).

Em seguida, você pode especificar a chave a ser usada para cada host.

    
por peperunas 21.03.2014 / 19:20
0

O script de alguma forma olha para o diretório raiz para enviar a chave privada. Ele funciona depois de copiar o diretório id_rsa e id_rsa.pub sob /home/hduser/.ssh/ para o diretório /root/.ssh/ .

sudo cp -av /home/hduser/.ssh/id_rsa /root/.ssh/
sudo cp -av /home/hduser/.ssh/id_rsa.pub /root/.ssh/
    
por Eyüp Alemdar 21.03.2014 / 19:32