E seguro, bem mais seguro que a sua senha de n caracteres. Hoje veremos como logar num servidor remoto via SSH sem a utilização de senhas, utilizando o conceito de chaves privadas e públicas.
No repositório de Ubuntu do Circo Digital que mantenho, tenho de constantemente fazer uso de transferências de arquivos para o servidor. Naturalmente, não uso FTP pela insegurança, prefiro fazer uso de SSH. O problema é que os pacotes são muitos e, como estou amarrado à uma conexão lenta (300 kbps de upstream), tenho de abrir uma conexão para primeiro enviar o pacote e depois os metadados. Naturalmente, seria um saco ficar digitando a senha do usuário do servidor toda hora, por isso procurei uma solução para automatizar o processo.
A idéia de não utilizar senhas para conectar num servidor parece insegura, e realmente o é se terceiros tiverem acesso ao seu computador. Como a minha paranóia não abrange espionagem industrial e se meu laptop for roubado o máximo que irá acontecer será o meliante ligar e dizer “que porra de Uíndoux estranho é esse?”, estou tranqüilo. A idéia é usar chaves encriptadas. Você gera um par de chaves (chave pública e chave privada), guarda a chave privada no seu computador e envia a chave pública para os computadores que você queira entrar sem utilizar senha. É o mesmo processo da criptografia de correio eletrônico.
Pois bem, vamos ao procedimento.
- Entre com o seguinte comando no console, para gerar o par de chaves:
ssh-keygen -b 1024 -t rsa - O
ssh-keygenirá perguntar aonde você quer guardar sua chave, deixe o padrão$HOME/.ssh/id_rsaapertando ENTER. - Agora ele lhe pergunta por uma senha. A autenticação das chaves pública e privada pode ser usada sem senha, o que é o nosso caso, ou utilizando-se de uma senha, para reforçar ainda mais a segurança. Ficamos no primeiro caso, e pressionamos ENTER para deixar a senha em branco e ENTER novamente para confirmar.
- Agora que a chave foi gerada, precisamos enviá-la para o servidor. Fazemos isso com o comando
scp ~/.ssh/id_rsa.pub usuario@servidor:~/.ssh - Chave enviada, temos agora de dizer para o servidor SSH que ela é uma chave de autenticação. Logamos no servidor (
ssh usuario@servidor), digitamos a senha pela última vez
e configuramos: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys && rm ~/.ssh/id_rsa.pub - Finito! Agora você poderá logar no seu servidor com segurança e sem precisar digitar a senha a todo momento. Para uma maior segurança, você pode fazer uma cópia de segurança de todos os arquivos do
~/.sshda sua máquina e desativar o login “normal” de seu usuário no servidor, assim mesmo que alguém descubra a senha do seu usuário, só poderá logar caso tenha acesso físico à máquina ou às suas chaves privadas.
Posts (RSS)