Configurando seu SSH para autenticação automática

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

[ Hits: 26.411 ]

Blog: https://fabio.automatizando.dev

 


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

Alterando a porta 3000 de um projeto em React ou NodeJS

Reproduzindo vídeos em modo texto no Linux

Meu servidor Conectiva Linux se conecta, mas não encontra sites na Internet

Como remover parêntesis dos nomes de arquivos

Python - UnicodeDecodeError: 'utf-8' codec can't decode byte [Resolvido]

Leitura recomendada

Abrir Dropbox com Nemo (Linux Mint)

O que fazer após instalar LMDE 2

Compiz no Linux Mint 12 - modo clássico

Wi-Fi no Slackware modo texto com WICD

Como adicionar placa de rede em servidor CentOS 6x

  

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