quinta-feira, outubro 09, 2014

Usando ~/.ssh/config

Para administradores de redes e de sistemas ou outros usuários que frequentemente usam múltiplas sessões shell, o SSH acaba sendo uma das ferramentas Unix mais utilizadas. Ele funciona tão bem que você vai usá-lo diariamente de forma automática. Inclusive se você está usando o Vagrant como seu ambiente de desenvolvimento virtualizado. O post de hoje é para você que usa muito o SSH.

O arquivo ~/.ssh/config pode conter uma série de configurações para facilitar o seu dia a dia.

Abreviação de hostnames

Imagine que você precisa acessar o host ssh web1134s.zyc.ats.newitsolutions.foo.com. Inserindo as linhas abaixo no arquivo ~/.ssh/config você poderá acessar esse host digitando apenas ssh web1134s. É óbvio que essa configuração também poderia ser realizada nos arquivos /etc/hosts ou /etc/resolv.conf, mas não queremos usar os super poderes do sudo à toa.

Host web1134s
HostName web1134s.zyc.ats.newitsolutions.foo.com

Fixando portas

Imagine que você continua precisando acessar o host ssh web1134s.zyc.ats.newitsolutions.foo.com, o mesmo do exemplo acima. Não bastasse o nome do host ser tão grande a porta padrão SSH foi alterada para a porta 53876. Que beleza, hein? Você já sabe como configurar o SSH para acessar apenas pelo primeiro nome, mas ainda assim precisa sempre executar ssh web1134s -p 53876. Adicione as linhas abaixo no arquivo ~/.ssh/config e fixe a porta que irá comunicar com esse host.

Host web1134s.zyc.ats.newitsolutions.foo.com
Port 53876

Logando com um usuário diferente

Continuando nosso exemplo. Você continua precisando acessar o host web1134s.zyc.ats.newitsolutions.foo.com. O nome do host é grande, a porta padrão SSH foi alterada e agora o seu usuário nesse servidor foi alterado. Agora seu usuário nesse host é um código tipo jj1456t2 ou qualquer nome diferente do seu usuário logado no sistema operacional, de forma que você sempre necessitará digitar o usuário que está fazendo login. Adicione as linhas abaixo e pronto! Basta continuar digitando o comando ssh web1134s (obviamente, se os passos anteriores também foram seguidos).

Host web1134s.zyc.ats.newitsolutions.foo.com
User jj1456t2

Usando arquivos de chave alternativos

Mais uma mudança aconteceu para o login no host web1134s.zyc.ats.newitsolutions.foo.com. A partir de agora a chave usada nesse host deve ser 2048-bit RSA. Como sua chave antiga, que é usada em muitos lugares, não é compatível, você terá que criar uma nova chave e usá-la apenas para login nesse host. Dessa forma seu comando de SSH mudou para ssh -i ~/.ssh/id_rsa_2048.custom web1134s. Inserindo as linhas abaixo no arquivo ~/.ssh/config você não precisará mais executar o comando de ssh dessa forma. Inclusive você pode usar * no início do nome do host como coringa para qualquer host do domínio.

Host web1134s.zyc.ats.newitsolutions.foo.com
IdentityFile ~/.ssh/id_rsa_2048.custom

Legal né? Depois de tantas mudanças no host o comando SSH permaneceu o mesmo com ajuda do arquivo ~/.ssh/config.