Tungado do MacOS Blog
Enviado por Rodrigo Calado em 6 de fevereiro de 2010 – 20:28
O OpenSSH é talvez a ferramenta mais utilizada poradministradores de sistemas atualmente. Quando de seu desenvolvimento, o objetivo dele foi substituir ferramentas inseguras como telnet, rlogin, etc. Ele permite que você se conecte de forma segura a qualquer dispositivo (como switches, roteadores, servidores Mac OS X, Linux, FreeBSD, OpenBSD,Solaris, etc.) que esteja executando um servidor SSH com suporte aos protocolos 1 ou 2.
A configuração
A autenticação vai acontecer assim:
Para isso, vamos começar gerando o certificado do cliente. Para isso execute o seguinte comando:
# ssh-keygen -t rsa -b 2048
O “ssh-keygen” não precisa necessariamente ser executado como root. Se a chave criada para o usuário “x” for reconhecida pelo servidor, o usuário “x” poderá logar como “root” no servidor, explico isso mais com mais detalhes adiante.
Executando o “ssh-keygen” será gerada uma chave RSA de 2048 bits (eu especifiquei na linha comando, mas não é necessário já que este é o padrão). O mínimo para o RSA é de 768 bits. Algumas perguntas serão feitas para você. Os valores exibidos entre “()” são os valores padrão e, se quiser mantê-los, basta pressionar “enter”, não precisa escrever a opção novamente:
Agora, temos que falar para o servidor que ele deverá aceitar esse certificado. Para isso, transferimos o certificado para o servidor de forma segura:
# scp /root/.ssh/id_rsa.pub root@192.168.1.104:/root
Isso irá copiar a chave pública do cliente para o servidor, no diretório /root. Agora, temos que adicionar esse certificado ao banco de dados que contém os certificados aceitos por esse servidor. No servidor, execute:
# cat id_rsa.pub >> /root/.ssh/authorized_keys
Vale lembrar que o diretório “.ssh” só existirá se você tiver utilizado o SSH pelo menos 1 vez, anteriormente (se ele não existir, pode criá-lo na mão). Caso o arquivo authorized_keys não exista, basta executar o comando citado acima.
Pronto! Agora você já pode se conectar ao servidor de uma forma absolutamente segura, sem medo que roubem a sua senha (já que você não a envia através da rede) e sem medo de ataques brute force (que são totalmente inofensivos contra autenticação baseada em certificados RSA).
Com qual usuário eu vou logar?
A autenticação via certificados pode ser utilizada para qualquer usuário válido no servidor, não apenas para o usuário root. Seguindo os passos descritos anteriormente, você poderá logar sem senha como root utilizando o seguinte comando:
$ ssh root@192.168.1.104
Isso, considerando que você não esteja executando este comando como root. Se estiver, basta:
# ssh 192.168.1.104