Acesso a um servidor SSH sem a digitação de senha
Configuração do servidor
Para se acessar uma máquina remota sem a digitação de senha em todos os acessos deve-se realizar a seguinte configuração no servidor:
- Gerar uma chave RSA ou DSA sem o uso de senha (a escolha por RSA ou DSA depende da versão de seu SSH)
- Copiar a chave pública para a máquina remota como maquina.remota:~/.ssh/authorized_keys (RSA) ou maquina.remota:~/.ssh/authorized_keys2 (DSA)
- Certificar-se que o servidor SSH possua as seguintes informações
no /etc/ssh/sshd_config:
RSAAuthentication yes DSAAuthentication yes
Permissões de diretórios
- Certifique-se que seu diretório pessoal e todos os diretórios acima dele possuem permissões segures, i.e., apenas o dono dos mesmos possui permissão de escrita neles
- Certifique-se que todos os diretórios que precisem ser acessados por outros tenhas as permissões corretas (lembre-se que estes precisam ter o bit de execução ativado por outras pessoas e que servidores web precisam ser capazes de ler o diretório onde encontram-se os arquivos HTML)
Configuração do cliente
Assim que tiver a chave privada correta com você, quando executares um ssh na máquina remota sua senha não será solicitada. Autenticações do tipo DSA e RSA têm prioridade sobre a digitação de senha e são tentadas primeiro. Se for necessário usar um protocolo específico (por exemplo, o servidor remoto pode usar uma versão de SSH mais antiga que a sua), deve ser gerado o par de chaves para a versão correta.
Escolhendo o algoritmo de criptografia para sua chave
- Se seu SSH é o OpenSSH v2 ou superior (i.e., ele usa o protocolo OpenSSH V3 ou superior), pode-se usar chaves do tipo DSA
- Se seu SSH é o OpenSSH v1 ou superior pode-se usar chaves RSA (lembre-se da patente sobre o algoritmo RSA!)
- Se você usa uma versão de SSH diferente, consulte a documentação de seu servidor para verificar o tipo de chave a ser gerada
Gerando o par de chaves pública e privada
Chaves DSA
Digite o comando:
ssh-keygen -t dsa -f ~/.ssh/id_dsa
Quando uma senha for solicitada, simplesmente tecle ENTER (ou seja, coloque uma senha em branco).
Este comando criará dois arquivos: ~/.ssh/id_dsa (sua chave privada) e ~/.ssh/id_dsa.pub (sua chave pública).
Lembre-se que você deve enviar à máquina remota apenas a chave pública, que está no arquivo id_dsa.pub.
Chaves RSA
Digite o comando:
ssh-keygen -t rsa -f ~/.ssh/id_rsa
Quando uma senha for solicitada, simplesmente tecle ENTER (ou seja, coloque uma senha em branco).
Este comando criará dois arquivos: ~/.ssh/id_rsa (sua chave privada) e ~/.ssh/id_rsa.pub (sua chave pública).
Lembre-se que você deve enviar à máquina remota apenas a chave pública, que está no arquivo id_rsa.pub.
Chaves RSA versão 1
Digite o comando:
ssh-keygen -t rsa1 -f ~/.ssh/id_rsa1
Quando uma senha for solicitada, simplesmente tecle ENTER (ou seja, coloque uma senha em branco).
Este comando criará dois arquivos: ~/.ssh/id_rsa1 (sua chave privada) e ~/.ssh/id_rsa1.pub (sua chave pública).
Lembre-se que você deve enviar à máquina remota apenas a chave pública, que está no arquivo id_rsa1.pub.
Implicações de segurança
A segurança neste caso será tão forte quanto a existente na máquina que contém as chaves. Se esta máquina for comprometida, todas as demais poderão ser também acessadas e sob a identidade do possuidor das chaves.
Um artigo onde a segurança é aumentada é o SSH & SSH-Agent.
Sobre este documento
Autor: Jorge Godoy
Data: 09 de junho de 2002
Última atualização: 28 de novembro de 2002