Como criar a sua chave publica/ privada com OpenSSH

11/06/2010

em Como Fazer,Linha de comando

Este artigo descreve como criar uma chave publica/ privada, de forma a autenticar-se em computadores/ servidores com OpenSSH e SSH, utilizando apenas uma identidade (e uma única password) a várias máquinas, independentemente da password de login do computador/ servidor.

O protocolo SSH1 não deverá ser utilizado devido ás suas conhecidas vulnerabilidades. Utilize sempre o protocolo SSH2.

Em ambiente Microsoft Windows, com o programa PuTTY

Efectue a transferência dos programas PuTTY no site do autor, utilizando o ficheiro do instalador Windows.

Execute o programa puttygen.exe e crie uma chave publica/ privada em SSH2. Grave-as como putty_key.pub e putty_key.ppk.

Copie a chave publica para o servidor remoto sob a directoria ~/.ssh/putty_key.pub

No servidor remoto, converta a chave publica para o formato OpenSSH (substitua o “o-meu-nome” pelo seu utilizador no servidor):

# ssh-keygen -i -f ~/.ssh/putty_key.pub > ~/.ssh/o-meu-nome.pub

No servidor remoto, copie o conteúdo da chave publica para o ficheiro de autenticação por defeito:

# cat ~/.ssh/o-meu-nome.pub >> ~/.ssh/authorized_keys2

Utilize o putty.exe para ligar ao servidor remoto, definindo o caminho da sua chave putty_key.ppk em Connection > SSH > Auth (Private key file for autentication). Pode também guardar a sessão para que não esteja sempre a definir o caminho da chave.
Outra opção, é criar um atalho no seu menu de arranque com “C:\DIRETORIA\DE\pageant.exe” “C:\DIRECTORIA\DE\putty_key.ppk” de forma a que quando inicie o seu computador, a chave seja definida por defeito.

Em ambiente Linux, com OpenSSH

Para criar uma chave privada/ publica, execute:

# ssh-keygen -t rsa

de seguida, insira uma password segura (mínimo de 8 caracteres, utilizando letras, sinais e números), que será utilizada para encriptar a chave privada, e confirme-a.
Assim que as chaves sejam geradas, ser-lhe-á apresentado um resultado semelhante a:

Your identification has been saved in /home/sshuser/.ssh/id_rsa
Your public key has been saved in /home/sshuser/.ssh/id_rsa.pub
The key fingerprint is:
9a:7a:87:33:14:d2:12:72:7c:3f:ea:54:a4:2e:b6:ba sshuser@servidor.estou.com.pt

Para outras opções, verifique a página do manual de ssh-keygen (EN).

As chaves criadas são guardadas na sua directoria por defeito sobre a subdirectoria .ssh.
Agora, deverá configurar o servidor remoto com as suas chaves, copiando o conteúdo da sua chave publica $HOME/.ssh/id_rsa.pub para o ficheiro authorized_keys2 no servidor remoto.

Copie o ficheiro $/HOME/.ssh/id_rsa.pub para o servidor remoto:

# cd $HOME/.ssh
# sftp servidor.estou.com.pt
Connecting to servidor.estou.com.pt
sshuser@servidor.estou.com.pt's password:

Insira a sua password no servidor remoto e digite

sftp> cd .ssh
sftp> put id_rsa.pub

Para sair do sftp:

sftp> bye

Crie ou adicione a sua chave publica no ficheiro authorized_keys2, no servidor remoto, utilizando o seguinte comando:

# cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/autorized_keys2

Para utilizar, poderá, no seu computador local, digitar:

# ssh sshuser@servidor.estou.com.pt -i .ssh/id_rsa

Note, que em vez de lhe ser apresentado, o pedido da password, é uma passphase, que está associada á sua chave, inserida no servidor.

Artigo anterior:

Próximo artigo: