Acesso SSH automatizado

Olá pessoal!

Hoje decidi montar uma dica rápida mas muito funcional. Automatizar o acesso ssh é muito simples, mas percebo que algumas pessoas da nossa área ficam com dúvidas e por isso decidi compartilhar essas duas formas que conheço.

Essas configurações eu utilizo no meu dia a dia. Nesse exemplo o nosso ambiente é um host com SO Ubuntu e está configura na Amazon (EC2). Eu utilizo um macbook, mas funciona também em Linux.

Selecionei duas formas, mas caso tenha alguma que conheça e quiser compartilhar, fica a vontade para publicar aqui !

Método Authorized Keys

O primeiro método consiste em adicionar o id_rsa.pub local no servidor remoto. Para isso, basta copiar o arquivo que se encontra na pasta ssh de sua máquina que geralmente fica na pasta home:

cat ~/.ssh/id_rsa.pub

selecione o conteúdo que foi disponibilizado no terminal e copie-o.

Agora, vamos acessar o servidor remoto e colocar nossa chave em um arquivo específico chamado authorized_keys.

ssh -i ~/pems/root-site.pem ubuntu@host

No comando acima, utilizo o parâmetro -i para informar a minha chave .pem que é o que autoriza a minha conexão ao host na Amazon. Caso você não utilize um servidor que precise de uma chave .pem para acessar, basta ignorar o parâmetro e conectar de modo padrão inserindo depois a senha ou via linha de comando direto.

Conectado no servidor, vamos criar o arquivo authorized_keys dentro da pasta .ssh.

cd ~/.ssh/
echo >> authorized_keys
vim authorized_keys

na linha 2, utilizo o comando echo para criar o arquivo e na linha 3 utilizo o vim como editor de texto. Fique a vontade para utilizar o editor que esteja acostumado.

Próximo passo é colar o conteúdo que copiamos do id_rsa.pub da nossa maquina local dentro da authorized_keys e já estamos prontos para testar a conexão.

exit
ssh ubuntu@host

Conectado com sucesso !

Percebam que nessa conexão não precisei utilizar o parâmetro -i para usar a key .pem pois ja estava com o id_rsa.pub na lista de chaves autorizadas.

Método Config

Esse método achei muito interessante e não tinha conhecimento dessa configuração. Vi em um tutorial enquanto estudava sobre deploy automático. Precisaremos criar um arquivo na nossa pasta .ssh chamada config que terá todos os parâmetros para acessar o nosso host remoto. Então vamos botar a mão na massa. Utilizarei o editor vim para a criação do arquivo.

cd ~/.ssh
vim config
Host alias-do-nosso-server
 Hostname ec2–52–90–10–28.compute-1.amazonaws.com
 User ubuntu 
 IdentityFile ~/.ssh/chave-amazon.pem

No arquivo config, temos os parâmetros host, hostname, user e identity file. No host, coloque o nome que deseja utilizar no terminal para acessar o seu servidor remoto. Ele é apenas um “apelido” para que fique mais fácil de utilizar. Em hostname, coloquei o Public DNS que se encontra na Amazon. Caso não esteja utilizando um servidor Amazon, coloque o ip do seu server remoto. User é o usuário do servidor remoto e o Identity File é para informarmos onde a chave pem está (no caso de ser um servidor Amazon).

Após isso, salve o arquivo e vamos testar:

ssh alias-do-nosso-server

Bom pessoal, por hoje é isso. Das duas configurações, a que costumo utilizar é a primeira authorized keys apenas por estar mais familiarizado e também por conhecer a segunda configuração há pouco tempo. Caso conheçam alguma alternativa, fique a vontade em compartilhar e se houver alguma dúvida, pode ficar a vontade em entrar em contato comigo. Conhecimento nunca é de mais, não é mesmo?

Abraços !

Victor Colucci Bredarioli

Web Developer at Beblue

victorcbr@gmail.com