Gerenciando múltiplas chaves SSH no Linux

Gerenciando múltiplas chaves SSH no Linux

Quem trabalha com desenvolvimento web provavelmente já deve ter ficado louco em algum momento com tantas chaves SSH para gerenciar. É chave para Github, chave para servidor de teste, chave para servidor de produção… O SSH config é uma mão na roda nessas horas.
Alias
Quando eu comecei a trabalhar com SSH, tinha apenas duas chaves para gerenciar eeu simplesmente chamava assim:

$ ssh -i ~/.ssh/chave_privada usuario@servidor

O problema com esse comando é que são muitas coisas pra digitar e é muito fácil de esquecê-las. Foi então que alguém me falou: “- Ei! Usa um Alias no Shell e para de sofrer…”. Como faz isso? Você precisa abrir seu .bashrc e adicionar o seguinte:

alias ssh_server1=’ssh -i ~/.ssh/chave_privada usuario@servidor’

Agora, sempre que eu quiser acessar o servidor em questão, abro o meu terminal e digito

$ ssh_server1

Config file
Eu costumo ser bem chato com organização. Hoje tenho cerca de cinco chaves para gerenciar e utilizar Alias para todas não parecia ser o mais legal. Na verdade, estava bem feio. Foi aí que descobri que o próprio open-ssh disponibiliza um arquivo de configuração para gerenciar as chaves.
Veja como é fácil converter o exemplo anterior para o arquivo de configurações:

O primeiro passo é acessar o diretório ~/.ssh e criar o arquivo config:


$ cd ~/.ssh
$ touch config

Agora você deve definir os parâmetros de sua conexão ssh:


Host server1
User usuario
HostName server1.com
IdentityFile ~/.ssh/chave_privada_do_server1

Agora, para acessar o server1 por ssh, rode o comando:

$ ssh server1

Simples assim!
Você também pode gerenciar as chaves utilizadas em repositórios GIT. Digamos que o seu repositório esteja hospedado sob o endereço repositorios.com. Então, ao invés de utilizar o ssh-agent para configurar a chave privada a ser utilizada, você pode criar uma nova entrada no arquivo de configuração ~/.ssh/config

Host repos
HostName repositorios.com
IdentityFile ~/.ssh/chave_privada_do_repositório
IdentitiesOnly yes

e utilizar o seguinte comando para clonar o repositório

$ git clone git@repos:seu_repositorio.git

O IdentitiesOnly yes serve para dar prioridade à chave privada definida em IdentityFile. Sem essa opção, a primeira tentativa de chave a ser utilizada seria a chave id_rsa
Essa dica é bem simples e vai ajudar bastante na organização de suas chaves. Outras dicas podem ser encontradas na documentação oficial do open-ssh, ou aqui no blog em um próximo post!
Até a próxima!
O post Gerenciando múltiplas chaves SSH no Linux apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

Gerenciando múltiplas chaves SSH no Linux
Fonte: Locaweb