Recentemente comecei a trabalhar mais com servidores cloud linux e, após implementar a segurança, minha conexão SSH ficou cheia de parâmetros, tipo isso:

ssh ocean@50.62.125.250 -i ~/.ssh/marcelo.key -p 2222

Bem…, quando digitamos isso para acessar somente um servidor, até que não é tão ruim. Mas quando temos que acessar três, cinco, dez servidores, aí percebemos a confusão que é ficar lembrando de IP’s, usuários, chave de criptografia e portas diferentes. Então, nesse tutorial vou mostrar para vocês como facilitar isso. E essa configuração funciona em qualquer desktop que esteja rodando Linux ou Unix como sistema operacional.

Vamos usar a linha de comando acima como nosso exemplo. Primeiro vamos entender quais parâmetros temos aqui: 

  • Usuário de acesso: ocean
  • IP do servidor: 50.62.125.250
  • Caminho da chave privada: /.ssh/marcelo.key
  • E porta de conexão: 2222

Para evitar ficar digitando esses parâmetros todas vez, abra o terminal e crie o seu arquivo de configuração do cliente SSH digitando o seguinte comando:

vi ~/.ssh/config

E adicione as seguintes opções de configuração para um atalho para server1, conforme nossa configuração de exemplo:

Host server1
     HostName 68.183.249.79
     Port 2222
     User ocean
     IdentityFile ~/.ssh/marcelo.key

Salve e feche o arquivo. Para abrir sua nova sessão SSH para server1, digite o seguinte comando:

ssh server1

Você pode colocar vários servidores dentro do arquivo ~/.ssh/config. Veja abaixo exemplo do meu arquivo de configuração do cliente SSH:

### Defaul for All ###
Host *
       VisualHostKey=yes

Host web-server
       HostName 59.18.249.70
       Port 2222
       User ocean
       IdentityFile ~/.ssh/marcelo.key

Host cloud-server
       HostName 3.19.49.79
       Port 2222
       User ocean
       IdentityFile ~/.ssh/marcelo.key

Isso tem facilitado muito o meu trabalho, principalmente pelo fato de que quando vou fazer uma conexão SSH, eu simplesmente digito ssh seguido da inicial do nome do servidor.  Pressiono Tab e o terminal auto completa o restante para mim.

 Entendendo os parâmetros no arquivo ~/.ssh/config 

  • Host: Define para qual host a seção de configuração se aplica. Aqui você define um nome qualquer para o servidor. A seção termina com uma nova seção Host. Você pode usar “*” para definir uma configuração padrão para todos os host no arquivo.
  • HostName: Especifique o host de destino. Pode o nome DNS ou IP.
  • User: Define o nome de usuário para a conexão SSH.
  • IdentityFile: Aqui devemos especificar o caminho da chave privada.
  • Port: Especifique qual é porta de destino no servidor SSH.
  • VisualHostKey: Exibe uma impressão digital da chave criptográfica do servidor. Dessa forma o usuário pode perceber se está conectando o servidor correto. Eu mostro isso no meu vídeo sobre Como implementar alta segurança em um Servidor Cloud.

Em alguns tutoriais vi pessoas falando sobre parâmetros para especificar a versão protocolo SSH e como manter a conexão ativa. Atualmente esses parâmetros não são mais necessários.

E aí? O que achou deste tutorial? Quais outros parâmetros você especifica na sua conexão ssh? Deixe nos comentários abaixo. Valeu!