Configurando seu SSH para autenticação automática

Publicado por Fábio Berbert de Paula em 07/11/2002

[ Hits: 26.096 ]

Blog: https://www.instagram.com/alexabolada/

 


Configurando seu SSH para autenticação automática



Suponha que você tem seu desktop e passa o dia todo realizando acessos remotos com o programa ssh aos servidores de sua rede. É um saco ter que digitar sua senha toda vez que se abre uma sessão, pensando nisso vou tentar explicar como fazer para automatizar o processo de autenticação do ssh.

Em nosso exemplo prático vamos assumir que o nome da minha máquina é sinitro.vivaolinux.com.br e o servidor que desejo acessar automaticamente é deepblue.vivaolinux.com.br.

Na máquina cliente


Nosso primeiro passo é o de gerar uma chave pública para a máquina sinistro:

$ ssh-keygen
Generating 1024-bit dsa key pair
1 oOo.oOo.
Key generated.
1024-bit dsa, fpaula@gnu, Fri Oct 11 2002 17:01:27 -0300
Passphrase : <ENTER>
Again : <ENTER>

Private key saved to /home/fabio/.ssh2/id_dsa_1024_a
Public key saved to /home/fabio/.ssh2/id_dsa_1024_a.pub

O comando acima gerou os arquivos id_dsa_1024_a e id_dsa_1024_a.pub. Durante o processo de geração dos mesmos, uma frase-chave é perguntada, se você digitar alguma coisa, essa frase será solicitada via prompt toda vez que você for se conectar, então deixe-a embranco.

Para facilitar nossa didática, vou entrar no diretório do ssh e renomear os arquivos gerados:

$ cd ~/.ssh2
$ mv id_dsa_1024_a sinistro
$ mv id_dsa_1024_a.pub sinistro.pub

E em seguida criar o arquivo identification:

$ echo idkey sinistro > identification

Na máquina servidor


1. Copie o arquivo sinitro.pub da máquina sinistro.vivaolinux.com.brpara o diretório /home/fabio/.ssh2 da máquina servidor (deepblue.vivaolinux.com.br).

2. Crie o arquivo authorization no diretório do ssh:

$ cd /home/fabio/.ssh2
$ echo key sinistro.pub > authorization

Pronto! Agora toda vez que você tiver na máquina sinistro, pode acessara máquina deepblue sem precisar informar uma senha.

sinistro$ ssh deepblue.vivaolinux.com.br

Atenciosamente,
Fábio Berbert de Paula
fabio@vivaolinux.com.br

Outras dicas deste autor

Python - pegar elemento aleatório de uma lista

Inicialização do Sistema

Como descobrir a versão (ou release) do seu Ubuntu Linux

Como escrever em arquivos protegidos usando o sudo e redirecionamento

Convertendo vídeo OGV (vídeo/OGG) para AVI/MPEG/MP4

Leitura recomendada

Fontes feias no Arch Linux [RESOLVIDO]

Intel Graphics Installer no Linux Mint

Se o pendrive não monta no Slackware... II

Autenticação 802.1x na rede cabeada usando Linux e wpa_supplicant

Ethereal resolvendo dependência da libnetsnmp.so.10

  

Comentários
[1] Comentário enviado por rabr em 29/03/2004 - 19:08h

Eu consegui utilizando a seguinte sintaxe:

ssh-keygen -q -t rsa1 -N "" -f ~/.ssh/identity
ssh-keygen -q -t rsa -N "" -f ~/.ssh/id_rsa
ssh-keygen -q -t dsa -N "" -f ~/.ssh/id_dsa

Este artigo contribuiu práca....

Valeu amigo!


[2] Comentário enviado por brock_carlos em 08/10/2004 - 15:58h

Nos batemos um monte, mas conseguimos, antes de ver essa dica, mas vai lá como fizemos,
Criação da chave
[b]
$ssh-keygen -t rsa
[/b]
enter em todos as pergunas,
gera os dois arquivos id_rsa e id_rsa.pub
envio o id_rsa.pub para o servidor em que eu quero fazer ssh sem senha.
lá no outro servidor só e bom tomar cuidado se já não existe exite um arquivo authorization. No meu caso o arquivo gerado no servidor remoto foi "authorized_keys", não sei se há diferenciação de nomes.
Se houver acrescente a linha que há no id_rsa.pub a esse arquivo já existente.

[3] Comentário enviado por aprendiz_ce em 05/05/2006 - 09:41h

Me tire uma pequena dúvida: Como é que eu devo fazer para que 10 estações (remotas) acessem o servidor com o mesmo usuários em comum?
Basta eu gerar as chaves em uma única estação e em seguida copiar as mesma para o servidor e para as outras estações.

Obrigado e parabéns pelo artigo.

[4] Comentário enviado por arollim em 20/01/2010 - 16:24h

Segui todos os passos mas quando executo o comando
conexao$ ssh 10.0.0.4 me dá a mensagem : -bash: conexao$: command not found


[5] Comentário enviado por fabio em 20/01/2010 - 17:00h

O comando no caso seria somente "ssh 10.0.0.4". conexao$ é o nome do seu computador + o símbolo do prompt.

Um abraço.

[6] Comentário enviado por arollim em 21/01/2010 - 10:07h

Fabio criei a chave no servidor 10.0.0.180 para acessar outro servidor 10.0.0.4 , nao é para acessar de um micro para outro servidor, e sim servidor para servidor.
O acesso é via Puty , o processo é o mesmo ?

Segui todos os passos acima mas quando dou um ssh 10.0.0.4 esta solicitando a senha , será que falta alguma coisa ?

Desde ja agradeço pelas dicas.
Abraco
Alex




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts