SSH: Autenticando através de chaves

Como fazer um conjunto de chaves pública e privada para autenticação no SSH? Nosso objetivo aqui é criar um conjunto de chaves para podermos acessar, via ssh, máquinas remotas sem ter de digitar a senha (ou seja, enviá-la pela rede, mesmo que criptografada), substituindo-a por
uma frase-chave (ou por nenhuma).

[ Hits: 104.845 ]

Por: Frederico Costa em 02/06/2004


Configuração



Na máquina de gerência, dentro do login responsável pela gerência (no nosso caso suporte), executaremos o comando ssh-keygen. Este comando irá gerar o par de chaves, perguntando também o arquivo que conterá a chave e a frase-chave:

$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/suporte/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/suporte/.ssh/id_dsa.
Your public key has been saved in /home/suporte/.ssh/id_dsa.pub.
The key fingerprint is:
27:76:90:70:7c:4f:5c:47:21:d1:97:4a:e1:c3:2b:49 suporte@gerencia

No comando acima utilizamos o parâmetro "-t dsa" para indicar que as chaves que estamos criando serão do tipo dsa (utilizado como padrão pelo ssh). Em nosso exemplo utilizamos o arquivo sugerido para a gravação da chave (/home/suporte/.ssh/id_dsa).

Para a frase-chave, quanto maior a frase, mais difícil será para ser quebrada (infelizmente também será mais difícil de ser lembrada), em nosso exemplo estaremos omitindo a frase-chave, o que fará com que nossa estação de gerência tenha acesso aos equipamentos remotos sem a necessidade de entrada de senha ou frase. Quando fornecendo uma frase-chave, ela não será mostrada na tela (nem mesmo *s aparecerão).

Serão criados dois arquivos, id_dsa e id_dsa.pub. id_dsa é o arquivo no qual estará guardada sua chave privada; GUARDE ESTE ARQUIVO COM A SUA VIDA, pois ele será o responsável por toda a segurança de nossa comunicação. Já id_dsa.pub é o arquivo da chave pública, que iremos enviar a todos os servidores para que nosso acesso seja autorizado.

Após a criação dos arquivos, precisamos enviar as chaves públicas aos servidores para que possamos acessá-los. Como nosso objetivo é o acesso remoto seguro, iremos estabelecer a comunicação da estação de gerência com os servidores remotos através da conta suporte (poderíamos entrar diretamente como root, porém este ato seria uma quebra de segurança, pois qualquer pessoa que tivesse acesso a senha da estação de gerência teria acesso imediato a conta de administração dos servidores).

Mais uma vez zelando pela segurança, iremos utilizar o comando scp (secure copy ? cópia segura) para transmitir o arquivo para o diretório /home/suporte/.ssh dos servidores remotos (no nosso exemplo iremos fazer apenas para o servidor alfa).

No servidor, todas as chaves públicas têm de estar no arquivo ~/.ssh/authorized_keys.

$ scp id_dsa.pub alfa:.ssh/gerencia.pub
suporte@alfa's password:
id_dsa.pub           100% |
********************************************|   602       00:00 
$ ssh alfa
suporte@alfa's password:
suporte@alfa:~$ cd .ssh
suporte@alfa:~/.ssh$ cat gerencia.pub >> authorized_keys

O próximo passo será testar o acesso ao servidor alfa através da estação gerência.

$ ssh alfa
Linux alfa 2.4.18 #1 Thu Sep 26 13:26:03 BRT 2002 i686 unknown
Last login: Fri Sep 5 17:22:44 2003 from gerencia
suporte@alfa:~$

Página anterior     Próxima página

Páginas do artigo
   1. Requisitos e instalação dos pacotes
   2. Configuração
   3. Considerações finais
Outros artigos deste autor

DHCP e BIND9 - Se entendendo via Dynamic DNS

Leitura recomendada

Operadoras de Banda Larga com Medição de Velocidade

Sistema de backup com rsyncd

DownThemAll: O melhor gerenciador de downloads no Linux

Como bloquear anúncios indesejados durante sua navegação pela web

Configurando uma VPN no FreeBSD

  
Comentários
[1] Comentário enviado por fabio em 02/06/2004 - 04:09h

Esse recurso é de extrema utilidade, parabéns pelo artigo.

PS: vai no futebol Sábado?

[]'s

[2] Comentário enviado por naoexistemais em 02/06/2004 - 08:15h

O artigo é legal, mas faltou falar de como usar as chaves no putty,

[3] Comentário enviado por fredcosta em 02/06/2004 - 09:59h

Wrochal,

Já usei com o putty, voce tem de utilizar um outro programinha da linha do putty.. vou pesquisar em meus alfarrábios e coloco aqui no VivaOLinux (seja com artigo, comentário ou dica.. :-)

[]ao...

[4] Comentário enviado por jorgef em 02/06/2004 - 18:05h

Genial!!!!!!!!!!
Só podia ser mais uma obra do Mestre Fred


Jorge Fernandes

[5] Comentário enviado por bacteria_ em 21/10/2005 - 12:14h

lolll,
grande dica, ja tentei fazer isso varias vezes mais nunca tinha conseguido, com esse artigo, foi mamata

valeu ae!
;)

[6] Comentário enviado por fabio em 10/12/2005 - 07:29h

Esse artigo sempre me salva, impressionante :)

[7] Comentário enviado por Lpareal em 12/12/2005 - 15:01h

Fred,
muito agradecido pelo seu artigo esclarecedor. Me ajudou bastante para implementar a comunicação entre meu servidor Samba e o servidor de backup.

Após os testes, o sistema nem pede senha e executa o script de sincronização sem dores de cabeça.

Parabéns! Continue assim!

Abs.,
Luciano Areal

[8] Comentário enviado por leogsouza em 20/03/2006 - 11:46h

Vlw pelo artigo era o q eu precisava

[9] Comentário enviado por thiagoloki em 14/05/2010 - 11:45h

debian:/home/# ssh 10.217.30.12
Enter passphrase for key '/root/.ssh/id_dsa':


sempre ele vai pedir essa passphrase ?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts