BOMBOLOM.COM

(ssh) Login remoto com SSH sem usar password

A forma de fazer login remotos sem ser necessário fazer a autenticação utilizando um par nome de utilizador palavra passe consite em instalar na máquina remota a parte publica da nossa chave de autenticação.

O problema é que para termos o login automatizado, é necessário que a nossa chave de autenticação não seja protegida por palavra passe. Este método é bastante seguro, desde que a parte privada da nossa chave de autenticação não caia nas mãos erradas!

Tendo sempre em conta o anterior, se tivermos duas máquinas, mailServer e backupServer e quisermos ligar da primeira para a segunda, usando o método referido fazemos o seguinte:

Entramos em mailServer como o utilizador que vai usar esta funcionalidade e fazemos:

$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/helder/.ssh/id_rsa):
Created directory '/home/helder/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/helder/.ssh/id_rsa.
Your public key has been saved in /home/helder/.ssh/id_rsa.pub.
The key fingerprint is:
06:19:2c:12:f2:e8:28:6e:46:e4:8f:99:88:b5:21:5f helder@mailServer

Quando é pedida a password pode-se optar por teclar 'ENTER' duas vezes. Se fizer isso tem de ter em conta que qualquer pessoa que obtenha a sua chave privada conseguirá aceder aos sistemas remotos. Com utilização normal pode-se utilizar o agente ssh para automatizar o login remoto - não vamos tratar desse aspecto neste post.

O passo seguinte consiste em copiar de uma forma segura a chave publica id_rsa.pub para a conta do utilizador no servidor remoto (backupServer). Isso pode ser feito usando o próprio ssh:

$ scp ~/.ssh/id_rsa.pub userRemoto@backupServer:~/

Resta agora, entrar no servidor remoto e acrescentar a chave publica à lista de chaves autorizadas:

$ ssh userRemoto@backupServer
$ cat id_rsa.pub >> ~/.ssh/authorized_keys

Isto pode ser feito em apenas um comando:

$ cat .ssh/id_rsa.pub | ssh userRemoto@backupServer 'cat >>
.ssh/authorized_keys'

As vantagens deste tipo de autenticação são óbvias em termos quer de facilidade de utilização quer para tarefas de automação. Os nomes utilizados neste exemplo já sugerem possíveis utilizações (para fazer backups para máquinas remotas). Como com o ssh podemos executar também comandos remotamente, o campo de utilização é imenso. Só como exemplo, para retirar uma listagem de uma directoria numa máquina remota podemos fazer:

$ ssh userRemoto@backupServer 'ls'
10.10.2006 | Ler mais | Comentários | Tags ,

Voltar à Página principal | Made with PyBlosxom