SCP sem solicitação de senha usando nome de usuário diferente [duplicado]

3

Eu tenho 2 servidores, Server1 e Server2 . Em Server1 , tenho um usuário chamado user1 . Em Server2 , tenho o usuário chamado user2 .

Eu preciso poder escrever um script que seja executado em Server1 , o que irá scp de alguns arquivos para user2@Server2 . Existe alguma maneira de fazer isso sem solicitar uma senha? Eu posso colocar a senha em um arquivo de configuração ou algo assim, se necessário.

Não posso criar user2@Server1 usuário.

    
por Triton Man 02.02.2015 / 16:10

1 resposta

15

O que você quer são pares de chaves ssh, eles criam 'redes confiáveis' que permitem autenticação sem senha:

No seu cliente (server1):

[user@server1]# ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): # Hit Enter
Enter passphrase (empty for no passphrase): # Hit Enter
Enter same passphrase again: # Hit Enter
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

Agora copie sua chave pública para seu servidor remoto (server2):

ssh-copy-id user2@server2
[OR]
cat ~/.ssh/id_rsa.pub | ssh user2@server2 "mkdir -p ~/.ssh \
    && cat >>  ~/.ssh/authorized_keys"

Agora, quando você executar o comando scp (ou qualquer outro ssh), não deverá ser solicitada uma senha:

scp file user2@server2:/drop/location
    
por 02.02.2015 / 16:31