Configurar o SSH para usar chaves em três passos

Quem usa o ssh com frequência para aceder máquinas remotamente, sente a necessidade de configurar o ssh para usar chaves. Estar toda a hora a inserir palavra passe é cansativo. Principalmente quando usamos o ssh para executar comandos remotamente de uma forma não interactiva.

Neste artigo vou descrever de forma bem simples, como configurar o ssh para usar chaves em vez de palavra passe.

Normalmente as distribuições Linux já trazem o cliente ssh e alguns utilitários que permite configura-lo apropriadamente. Só temos de usa-los de forma correta. Vamos lá então ver como se configura.

Passo 1: Criar o par de chaves na máquina local

Para criar o par de chaves uma privada e uma publica, executamos o comando ssh-keygen.

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/miguel/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/miguel/.ssh/id_rsa.
Your public key has been saved in /home/miguel/.ssh/id_rsa.pub.
The key fingerprint is:
81:68:0d:dd:19:d3:84:af:62:56:d3:00:07:b4:d8:42 miguel@LUA
The key's randomart image is:
+--[ RSA 2048]----+
|    Eo+++*.      |
|   . *.+=..      |
|    = = .+       |
|   . .  o.o      |
|       .So       |
|      + .        |
|     o .         |
|                 |
|                 |
+-----------------+

O comando ssh-keygen dá-nos a oportunidade de escolher o nome e a localização onde queremos que sejam geradas as chaves. Eu optei pela localização por defeito. E também permite-nos gerar as chaves com uma palavra passe. Por razões de segurança é importante inserir uma palavra passe. Porque mesmo que alguém tenha acesso às chaves, precisa da senha para poder instalar as chaves noutra máquina, para ter acesso ao servidor.

Passo 2: Instalar a chave publica na máquina remota

Agora que já temos as chaves criadas e prontas a usar, precisamos de instalar na máquina remota a chave publica para que as duas máquinas reconheçam a chave que acabamos de gerar. Para isso usamos o comando ssh-copy-id, este utilitário encarrega-se de copiar a chave publica para a máquina remota.

$ ssh-copy-id -i ~/.ssh/id_rsa.pub miguel@terra
Now try logging into the machine, with "ssh 'miguel@terra'", and check in:

~/.ssh/authorized_keys

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

 

Passo 3: Adicionar a chave ao agente de autenticação

Agora que a máquina remota já conhece a chave que geramos, falta-nos adicionar a chave ao agente de autenticação local, para que a use quando comunicar com máquina remota.

$ ssh-add
Enter passphrase for /home/miguel/.ssh/id_rsa:
Identity added: /home/miguel/.ssh/id_rsa (/home/miguel/.ssh/id_rsa)

 

Neste momento já podemos aceder a máquina remota sem palavra passe.

Comentem, partilhem, experimentem!

 

Artigos Relacionados:

Deixe uma resposta