Nessa postagem, iremos criar uma chave rsa para que o server01 consiga acessar o server02 sem precisar informar a senha.
Necessidade real: Copiar arquivos do servidor para o server02, via shell script, de forma automatizada no crontab do linux.
1) Começaremos gerando as chaves rsa no server01 no usuário raphael.
Ao executar o comando “ssh-keygen -t rsa” será solicitada algumas informações, podemos deixar tudo como default pressionando apenas o enter em cada ponto.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[raphael@server01 ~]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/raphael/.ssh/id_rsa): Created directory '/home/raphael/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/raphael/.ssh/id_rsa. Your public key has been saved in /home/raphael/.ssh/id_rsa.pub. The key fingerprint is: ad:ee:d8:60:1f:48:79:f9:4e:d7:c4:a3:e7:04:86:75 raphael@server01 The key's randomart image is: +--[ RSA 2048]----+ | | | | | . E | | . o o o | | o S o o + | | . o o . = . | | + o o o + | | . * + . + | | ..= . . | +-----------------+ [raphael@server01 ~]$ |
2) Copiar chave rsa pública para o server02.
Conforme visto anteriormente, a chave pública foi criada em “/home/raphael/.ssh/id_rsa.pub“.
Existem mais de uma forma para copiar a chave para o outro servidor, vou mostrar a forma mais simples:
Utilizando o ssh-copy-id, ele realiza a cópia da chave pública para o servidor remoto e adiciona no arquivo de chaves autorizadas.
Executar o ssh-copy-id no server01 passando como parâmetro o arquivo de chave pública gerada e o ip do server02:
|
1 2 3 4 5 6 7 8 9 10 |
[raphael@server01 ~]$ ssh-copy-id -i /home/raphael/.ssh/id_rsa.pub raphaelsousa@server02 29 raphaelsousa@server02's password: Now try logging into the machine, with "ssh 'server02'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. [raphael@server01 ~]$ |
Basta digitar a senha quando solicitado para enviar a chave para o server02.
Essa cópia também pode ser realizada de forma manual, copiando o conteúdo do da chave pública /home/raphael/.ssh/id_rsa.pub no server01 e enviando para o arquivo /home/raphaelsousa/.ssh/authorized_keys do server02.
Pronto, na próxima conexão ssh do usuário raphael no server01 para o usuário raphaelsousa no server02, não será solicitado senha.
OBS: Lembrando que a chave pública precisa ser gerada no usuário que vai realizar a conexão no server01 e enviada para o arquivo de authorized_keys do usuário no qual será conectado no server02.
Referências:
RSA (sistema criptográfico)
Criando a chave RSA local