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!