A magia do SSH config

A magia do SSH config

Nota: esse artigo é uma versão atualizada de outro artigo que escrevi no meu blog antigo com o título: SSH Config File para clientes SSH. Infelizmente (ou felizmente) não tenho mais o post original disponível :-)


SSH é um protocolo que permite acessar servidores de uma determinada rede de forma segura. Além de protocolo, existem também o utilitário de mesmo nome que implementa esse protocolo. Sua sintaxe é muito simples. Por exemplo, se você quiser acessar o servidor dev.primus.intra com o usuário lesclaypool, basta utilizar o seguinte comando:

ssh lesclaypool@dev.primus.intra  

Agora imagine que você precise acessar diversos servidores todos os dias. Para fazer isso você vai continuar usando o ssh, mas o problema muitas vezes é lembrar o nome de todos esses servidores!

Uma forma elegante de fazer isso é usando um arquivo config do ssh. Basicamente você deve criar um arquivo com o nome config dentro do diretório ~/.ssh. Nesse arquivo serão incluídos vários aliases para os servidores. Por exemplo, o servidor dev.primus.intra poderia ter o alias dev.primus, que ficaria assim no arquivo config:

Host dev.primus  
    Hostname dev.primus.intra
    Port 1984
    User lesclaypool

Após salvar esse arquivo você poderá acessar o servidor da seguinte forma:

ssh dev.primus  

Muito mais simples!! No arquivo config, a linha que inicia com Host define o alias do servidor, abaixo dela (note a indentação) aparecem o Hostname, que é o nome real do servidor ou o IP; Port, que é a porta que o serviço ssh está escutando no servidor e User, que define o usuário que será utilizado para acessar o servidor em questão. Ao executar o ssh ele procura o alias no arquivo config e usa a informação encontrada para fazer a conexão. Note que é possível ter vários Hosts definidos. Suponha que você acesse via ssh os servidores de dev.primus.intra e qa.primus.intra. O seu config ficará parecido com:

Host dev.primus  
    Hostname dev.primus.intra
    Port 1984
    User lesclaypool

Host qa.primus  
    Hostname qa.primus.com.br
    Port 1984
    User lesclaypool

Observe que ter a facilidade do config não faz muito sentido se você não padronizar os seus aliases. Por exemplo, se você tem os ambiente de desenvolvimento, QA, UAT e produção, seria interessante padronizar os aliases como algo do tipo:

[dev|qa|uat|prod].primus.intra

Vale ainda citar que o arquivo config tem uma infinidade de configurações. Caso tenha interesse em conhecer mais algumas dessas opções veja no manual através do comando: man ssh_config.

Bons configs para vocês!!

Subscribe to