SSH com keys

Existem certos momentos que precisamos acessar servidores remotos por ssh sem a utilização de senha.  Um dos motivos mais comuns para essa situação acredito que seja a necessidade de transferência de arquivos por scp em shell scripts. Através de shell scripts não é possível definir a senha de acesso ssh/scp sem que haja um intervenção manual. A saída para esse caso é a utilização de chaves criptografadas entre o servidor e o cliente ssh. Dessa forma será possível efetuar o login sem a necessidade de senha.

No lado do cliente ssh, será preciso gerar uma par de chaves usando criptografia rsa. (Deixe as opções de prompt em branco pressionando Enter em todas).

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/douglas/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/douglas/.ssh/id_rsa.
Your public key has been saved in /home/douglas/.ssh/id_rsa.pub.
The key fingerprint is:
c4:a8:e5:f3:74:cd:ff:f3:65:75:7d:e5:1f:1c:18:7e douglas@pasqua

A par de chaves foi gerado no diretório .ssh/ no seu diretório home.

Copie a chave pública para o servidor remoto.

$ scp ~/.ssh/id_rsa.pub douglas@ip-remoto:~

Conecte no servidor remoto e copie a chave pública para dentro do arquivo authorized_keys no diretório ~/.ssh:

$ mkdir .ssh
$ chmod 700 .ssh
$ cd .ssh
$ touch authorized_keys
$ chmod 600 authorized_keys
$ cat ../id_rsa.pub >> authorized_keys
$ rm ../id_rsa.pub

Voltando para a máquina do “client” ssh você está apto para conectar no servidor usando ssh/scp sem senha:

$ ssh -l douglas douglas@ip-remoto:~
$ scp arquivo.txt douglas@ip-remoto:~

Please follow and like us:

No Responses

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: