SSH (Secure SHell) é um dos modos de conexão remoto mais utilizados e seguros usandos atualmente. Existe um meio interessante de usar o SSH via Chaves (pública e privada), elevando assim a segurança na autenticação da conexão entre o cliente e servidor.
Vejamos uma situação simples, onde temos 2 máquinas, uma cliente e outra servidor usando linux, vejamos como ficaria a implementação das chaves via ssh.
[no cliente]
~$
~$ cd ~/.ssh/
~$ ssh-keygen
Entramos no diretório local .ssh e usamos o aplicativo ssh-keygen para gerar as chaves púbica e privada. Será solicitado o nome das chaves e uma frase de segurança. Use uma chave “forte”, garantindo assim a segurança das chaves…
[no prompt do ssh-keygen]
Generating public/private rsa key pair.
Enter file in which to save the key (/home/bleno/.ssh/id_rsa): bleno.org
Enter passphrase (empty for no passphrase): [frase de seguraça]
Enter same passphrase again: [novamente...]
Your identification has been saved in bleno.org.
Your public key has been saved in bleno.org.pub.
The key fingerprint is:
45:e0:08:e4:59:4c:f9:47:32:c4:3b:69:84:64:88:34 bleno@cliente
Como você pode ver, neste caso, foram geradas as seguintes chaves:
- bleno.org : chave privada
- bleno.org.pub : chave pública
Agora, no servidor, adicione sua chave pública no arquivo ~/.ssh/authorized_keys da seguinte forma:
[no servidor]
~$
~$ echo $HOME
/home/bleno.org
~$ echo bleno.org.pub > $HOME/.ssh/authorized_keys
Veja que ao verificar a variável $HOME do sistema, estou usado a chave pública para o usuário bleno.org. Agora, voltaremos a máquina cliente adicionaremos a chave privada de autenticação:
[no cliente]
~$
~$ ssh-add ~/.ssh/bleno.org
Resolvido. Agora é só se conectar ao servidor que a autenticação será realizada via chaves privada e pública.
Inté mais… ;)