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 [email protected] -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!
