Como fazer com que duas máquinas linux aceitem as outras conexões ssh sem pedir uma senha

1

Eu preciso criar um cron script que irá scp todos os logs de uma máquina para uma máquina de análise de log, mas quando eu scp me pedem para inserir uma senha. Normalmente, quando eu me conecto aos servidores usando Putty, estou usando pageant e Putty para permitir o encaminhamento de agentes e quando escolho a máquina à qual quero me conectar, ela abre uma janela de massa e me leva direto para o shell sem precisa inserir uma senha. Isso acontece depois que eu insiro minha chave pública rsa no arquivo .ssh / authorized_keys em cada máquina.

Gostaria de fazer o mesmo, mas entre dois servidores.

Edit: Eu não sei porque foi derrubado ... eu acho que é uma pergunta legítima. Por favor, diga-me por favor o que estou fazendo de errado:

[root@search-uk-1 .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ca:ab:4d:95:a4:ee:47:67:0c:e1:23:f3:73:46:67:7e [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|        .        |
|       ...       |
|      oo+.. o    |
|      .+S= +     |
|     o o+ * . E  |
|      =. *   .   |
|     + ..        |
|    ..+.         |
+-----------------+
[root@search-uk-1 .ssh]# ssh-copy-id root@sawmill
root@sawmill's password:
Now try logging into the machine, with "ssh 'root@sawmill'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

[root@search-uk-1 .ssh]# ssh root@sawmill
Enter passphrase for key '/root/.ssh/id_rsa':
Last login: Mon Nov  5 11:32:33 2012 from search-uk-1.int.incredimail.com
[root@sawmill ~]# exit
logout
Connection to sawmill closed.
[root@search-uk-1 .ssh]# ssh root@sawmill
Enter passphrase for key '/root/.ssh/id_rsa':

Mesmo se eu copiar a chave rsa do arquivo .pub e colá-la na máquina do controle remoto .ssh / authorized_keys, ela continuará me pedindo senha.

Obrigado

    
por Itai Ganot 05.11.2012 / 11:25

2 respostas

5

É bem simples. Gere na máquina seu rsa_id com ssh-keygen -t rsa

Depois disso, execute ssh-copy-id login@secondmachine put password, é tudo. Depois disso, você poderá fazer o login sem a senha de uma máquina para outra (se você quiser fazer o login sem nenhuma senha de ambas as máquinas, deverá executar as mesmas etapas na segunda máquina).

Mas talvez você deva considerar o uso do rsync para esses trabalhos. Usar senha para o rsync no cronjobs é muito simples com variáveis de ambiente USER e RSYNC_PASSWORD. Coloque isso no seu script


export USER=nameofrsyncuser
export RSYNC_PASSWORD=password

depois disso, qualquer comando rsync usará essas variáveis. É muito mais seguro porque o usuário rsync não é usuário do sistema. Você terá que configurar servidores rsync, mas é muito simples. E você pode proteger o compartilhamento rsync usando a diretiva allow do host na configuração do rsync.

    
por 05.11.2012 / 11:31
0

Em cada conta de usuário do servidor, execute ssh-keygen (cuidado para não sobrescrever). Isto irá gerar chaves ssh públicas e privadas em ~ / .ssh. Pegue a chave que é chamada id-rsa.pub por padrão e coloque-a no arquivo ~ / .ssh / authorized_keys do outro servidor. E vice-versa.

    
por 05.11.2012 / 11:31