AVISO

AVISO: ESTE É MEU ANTIGO BLOG, QUE NÃO É MAIS ESCRITO DESDE 2011. O CONTEÚDO AQUI EXPRESSO PODE NÃO REPRESENTAR MEUS PENSAMENTOS E OPINIÕES DE IDADE ADULTA. PARA CONTEÚDOS NOVOS E RELEVANTES ACESSE BLOG.BRUNO.TODAY




segunda-feira, 10 de novembro de 2008

PuTTY: Utilizando Chaves RSA e DSA no SSH

Palavras-Chave: SSH, PuTTY
Primeiramente peço desculpa aos inúmeros leitores(cerca de 2 ou 3 incluindo eu mesmo) deste blog por ficar alguns dias sem postar. As coisas andam um tanto corridas ultimamente.

Mas deixando o blá-blá-blá sobre o blog, agora vamos ao blá-blá-blá sobre o que vou escrever. Mas antes, para os apressados, informo que podem procurar pelo subtítulo "Finalmente..." logo abaixo para "meterem a mão na massa" logo. Muita gente, mas muita gente mesmo, durante minha vida profissional me fez essa bendita pergunta: eu uso Windows. Como posso acessar um servidor Linux via SSH estando no Windows??

Para esta pergunta, de início eu recomendava a utilização do OpenSSH para Windows(minha predileta, apesar de eu não utilizar o sistema do tiu Bill quase nunca). Os problemas que tiram a aceitação de muita gente à minha recomendação normalmente são algo como resolução ruim do prompt de comando do Windows(a Microsoft podia caprichar mais no cmd, não podia?), problemas com configuração de tipo de terminal, usuários que não querem iniciar o programa em linha de comando, entre muitos e muitos outros.


Tive mais sucesso quando passei a recomendar a eles o uso do PuTTY, que é mais "win-user friendly", gera menos transtornos para configuração de tipo de terminal/mapa de teclas, etc. Nosso amigo PuTTY só tem um pequeno problema: Incompatibilidade com chaves SSH2-RSA e SSH2-DSA geradas pelo utilitário ssh-keygen, do OpenSSH.

Estive fazendo algumas revisões de políticas de segurança em um cliente. Durante o processo, foi definida a adoção de chaves RSA para acesso via SSH. O problema logo apareceu: algumas pessoas acessam o servidor via PuTTY.

Sendo assim, vi que este velho problema precisava ser eliminado. Googlei por algum tempo e achei este link aqui(em inglês), que explica como proceder nesta situação. Abaixo estarei explicando em Português o procedimento e a idéia.

Finalmente...

Agora que já expliquei o contexto aonde utilizei, vamos para a parte que todos gostam. Eu prezumo que todos tenham conhecimento de como configurar o SSH no servidor e adicionar a chave na lista das chaves autorizadas para os usuários, então não vou entrar neste detalhe(fica para outro artigo).

Primeiramente, precisaremos de um software que pode ser obtido no site do PuTTY: o puttygen.exe. Este é o software que trabalha com as chaves em um formato próprio do PuTTY, diferente do formato SSH2.

O Primeiro Caminho

O primeiro modo para fazermos o PuTTY utilizar as chaves, é o mais simples: gerar a chave no próprio PuTTY. Para isso, abra o puttygen(faça o download apartir do link que eu coloquei acima).

Abaixo, selecione(em Parameters) a opção "SSH-2 RSA" ou "SSH-2 DSA", dependendo do algoritmo desejado. Não recomendo a opção "SSH-1", pois ela é para o protocolo versão 1 do SSH, que hoje está praticamente em desuso.

No campo de texto com rótuno "Number of bits in a generated key", você pode manter o valor 1024, ou aumentar(normalmente 1024bits é mais que o suficiente) para 2048 por exemplo(se o servidor contiver, por exemplo, fotos de uma bebedeira sua, tornando muito válido perder um pouco o desempenho para incrementar a este ponto a segurança).

Agora que está tudo parametrizado, clique em Generate. Segundo a mensagem da interface, a randomização da chave é de acordo com o movimento do mouse(que coisa não?)... Sendo assim, procure executar movimentos bem estranhos com o mouse nesta hora(é o que o software diz, não li os fontes para conferir).

Pronto... Após uma espera de cerca de 30 segundos, sua chave está "na mão", bastam algumas informações de como será salva a chave. Você pode definir um comentário(que sempre será visto no momento que o PuTTY envia a chave). E, você pode(e deve) definir um passphrase para a chave.

No campo "Key Passphrase", xingue sua sogra. No campo "Passphrase Confirm", xingue-a novamente(da mesma maneira). Ali valem espaços e caracteres especiais, então pode xingar a vontade.

Pronto, sua chave está gerada. Abaixo da barra de menus aparece um campo somente leitura, com a chave pública pronta para você adicionar no seu ~/.ssh/authorized_keys (ou outro arquivo de chaves autorizadas que esteja definido no /etc/ssh/sshd_config).

Você PODE salvar sua chave pública clicando no botão "Salve public key", e DEVE salvar sua chave privada através do botão "Save private key".

O Segundo Caminho

Este é para aqueles que já tem uma chave gerada no OpenSSH, e precisam utilizá-la no PuTTY. Somente para ilustrar, o procedimento básico para gerar uma chave no OpenSSH é a execução do comando:

$ ssh-keygen -f nome-do-arquivo -t rsa -b 1024

No exemplo foi usado RSA, de 1024bits, e o arquivo "nome-do-arquivo", mas estes parâmetros podem ser trocados. O comando de exemplo gera um arquivo chamado "nome-do-arquivo", contendo nossa chave privada, e outro chamado "nome-do-arquivo.pub", contendo a chave pública. A Passphrase será perguntada em um prompt.

Agora vamos importá-la para uso no PuTTY. Abra o PuTTYGen novamente, e clique no botão "Load". Selecione o arquivo, digite a senha(se houver). Se necessário, redefina o comentário e/ou o passphrase.

E, finalmente, salve sua chave. Agora na hora de usar o PuTTY, quando aparecer a tela de configurações dele, expanda na esquerda o item "Connection", e logo após o subitem "SSH". Clique no subitem "Auth".

Aparecerá um campo com o label "Private key file for authentication", com um botão "Browse..." ao lado. Clique no botão, procure a chave, e ela estará pronta para ser usada.

Espero que o artigo tenha sido útil!!

[]'s


Classificação do conteúdo: SÉRIO
Sobre Bruno Moreira Guedes:
Curriculum Vitae
Site Pessoal

2 comentários:

Jeronimo Fagundes disse...

Olá Bruno,
Estou acompanhando as discussões sobre o FISL, inclusive sobre a inclusão do TPB na edição desse ano. Li teu comentário lá, e, em boa parte, concordo contigo. Se possível, gostaria de te contactar pra conversar sobre isso, pois pretendo escrever algo em meu blog sobre esse assunto, e não é a única pessoa com que converso sobre isso.
Podes me contactar via Live Messenger ou via e-mail mesmo, o endereço é o mesmo para ambos: jeronimo@jeronimohome.com
Aguardo teu contato. Abraço.

Anônimo disse...

Olá Bruno, Obrigado pela dica de como fazer a chave. Não sabia o que fazer e ainda bem que achei o seu tutorial. Obrigado!

Sobre Bruno Moreira Guedes