Uma opção muito interessante, que pode aumentar o nosso conforto ao conectarmos com nosso servidor linux é utilizar a troca de chaves RSA durante a conexão SSH ao invés de digitar as senhas da conexão. Assim é possível automatizar conexões e criar scripts remotos com o Plink, além de outras facilidades que a nossa imaginação permitir!
Inclusive, esse recurso pode aumentar a sua segurança, já que nenhum keylogger ou xereta irá espiar você digitando a sua senha… mas basta apenas copiar o arquivo para ter acesso completo e irrestrito 😆
Configurando o Servidor Linux
Vale a pena conferir se as seguintes opções estão habilitadas em seu servidor ssh:
/etc/ssh/sshd_config
RSAAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Para gerar as chaves RSA no linux, pode-se utilizar o seguinte comando:
$ ssh-keygen -t rsa
Ele irá criar os arquivos id_rsa e id_rsa.pub no diretório ~/.ssh
Adicione todo o conteúdo da chave pública id_rsa.pub no arquivo ~/.ssh/authorized_keys em seu servidor, a chave privada id_rsa deverá ser transferida para a máquina cliente no diretório ~/ssh e ou ser convertida para o formato que o PuTTY irá utilizar no windows.
Certifique-se que as permissões e os destinos dos arquivos sejam seguros, afim de prevenir que alguém não autorizado tenha acesso às chaves.
Agora, no linux já é possível digitar ssh servidor.com.br e a conexão procede de maneira direta e segura!
Conectando-se do Windows em um Servidor Linux (Utilizando o PuTTY)
Se você ainda não possuir o PuTTY e o PuTTYgen, poderá efetuar o download dessas ferramentas no site oficial:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
O PuTTYgen nos permite criar ou converter chaves OpenSSL RSA para utilizar em conjunto com as conexões SSH. O arquivo .ppk deverá ficar em um local seguro dentro do seu computador!
Para configurar o PuTTY, nosso cliente SSH para o Windows, você define o local onde se encontra a chave privada nas opções Connection/SSH/Auth/Private key file for authentication, e opcionalmente em Connection/Data/Auto-login username poderá definir o seu login para automatizar o processo! Pode-se até salvar as opções como uma “Sessão” e até criar um atalho para o putty iniciar a sessão automaticamente, inclusive ao pressionar de um botão especial em seu teclado! 😀
A mesma chave pode ser utilizada em muitos outros programas, como por exemplo o FileZilla! (cliente de SFTP) 🙂
Observações e considerações finais:
Podem ser utilizados diversos pares de chaves independentes para cada máquina e serviço… ou apenas uma única chave para tudo, ficando a nosso critério a administração das chaves com ênfase na segurança e praticidade!
Uma idéia interessante, para aprimorar ainda mais a sua segurança, é criar um script de atualização das chaves.
Em clientes linux, é possível utilizar o rsync para enviar a chave nova para o servidor alvo.
Já em clientes windows, hipoteticamente, se a chave for armazenada no servidor e acessada por um compartilhamento de rede, é possível compilar o puttygen no console e efetuar a conversão da chave openssh por dentro do linux, deixando o processo completamente transparente para o cliente windows!
Assim podemos manter as chaves sempre atualizadas de forma prática e na freqüência desejada.. seja de hora em hora, diariamente, a cada semana, durante o mês, quando quiser! 💡