Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Neste documento, você verá como configurar uma conexão SSH utilizando uma chave pública. Este processo facilita a automação de scripts, pois após esta configuração não será solicitada a senha ao tentar acessar um servidor remoto.  Mas atenção: cuidado para não expor a chave privada.

Informações
titleInformações adicionais

Os links a seguir são referenciados ao longo desta página, e podem ser de interesse:https://cartilha.cert.br/fasciculos/#autenticacao ♦ 

Cartilha de Segurança para Internet

Confira, no Medium, o artigo original escrito por um dos integrantes da área clicando aqui

Este processo facilita na automação de scripts, pois após a troca de chave pública não será solicitada a senha ao tentar acessar um servidor remotamente. Lembrando que deve tomar cuidado e não expor a chave privada.

Não vou explicar o conceito de chave pública e chave privada, pois o objetivo deste post é apenas descrever o passo a passo simplificado de como fazer conexão utilizando chave pública e privada. Para quem está iniciando e quer saber um pouco mais sobre criptografia recomendo a leitura da cartilha de segurança para internet, esta cartilha ajudará nos seus primeiros passos.

Antes de iniciar o procedimento verifique se possui as ferramentas ssh, ssh-keygen e ssh-copy-id instaladasnos servidoresEm . Caso não possua, realize a instalação com o comando a seguir:

Bloco de código
titleRed Hat,
CentOs
Oracle Linux e CentOS
# yum install ssh ssh-keygen ssh-copy-id
Bloco de código
title
Em
Debian
e
, Ubuntu
# apt-get install ssh ssh-keygen ssh-copy-id

Procedimento

Image Modified

Ilustração de como ficará a conexão após a troca de chave pública

Gerar

Gerando a chave pública (SEM SENHA)

Na máquina onde será executado o comando remoto (ou scripts)
Utilize o usuário que terá acesso na máquina remota. Nos exemplos, estou utilizando o meu usuário.

Vamos gerar a chave; execute o comando abaixo:

$


Bloco de código
ssh-keygen -t dsa -f ~/.ssh/id_dsa


Após digitar o comando acima, pode pressionar ENTER para as próximas fases, assim o ssh-keygen irá gerar uma chave pública e privada sem senha.

RETORNO ESPERADO

Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase):
 
 [Apenas pressione ENTER]
Enter same passphrase again:
 
 [Apenas pressione ENTER]
Your identification has been saved in /home/user/.ssh/id_dsa.
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
The key fingerprint is:
f6:63:ra:34:b5:60:22:01:3v:31:3a:59:ca:1d:6c:7b [MD5] user@vm67183
The key’s randomart image is:
+ [ DSA 1024] +
|o+=. |
|o*o+. |
|=.+.o o . |
| . o E o = |
| . o S . |
| . = |
| . |
| |
| |
+ [MD5] +


Image Modified

retorno do comando — ssh-keygen -t dsa -f ~/.ssh/id_dsa

Compartilhar a chave pública

Utilize o comando abaixo para copiar a chave pública do servidor local para os outros servidores.

Bloco de código
$ ssh-copy-id [usuario]@[maquina_remota]

Este comando deve ser repetido para todos os servidores que desejar acessar.

Image Modified

retorno do comando — ssh-copy-id usuario@maquina_remota

Teste de conexão

Realize o teste conectando na máquina remota

Bloco de código
$ ssh [usuario]@[maquina_remota]

retorno do comando — ssh usuario@maquina_remota

Conclusão

É importante lembrar que o acesso está autorizado apenas para o usuário que gerou a chave, ou seja, se for gerada a chave com o usuário root, apenas quando estiver logado com o usuário root poderá acessar a máquina remota (sem solicitar senha). O mesmo ocorre se for gerada a chave com outro usuário.