Acesso a Multiplos Servidores Com Ssh_config(5)

Essa é uma pequena dica que queria compartilhar , muitas vezes vejo alguns desenvolvedores ou SysAdmins com acesso à diversos servidores :

Acesso SSH
1
2
3
4
user@local:$ ssh user@foo.bar.com
[user@foo]:~$  exit
user@local:$ ssh user@foo2.bar.com
[user@foo2]:~$

Em alguns casos alguns outros parametros são incluidos nos argumentos da conexão como: Porta de conexão não padrão:

Acesso SSH com uma Porta não padrão: 7834
1
2
user@local:$ ssh user@foo.bar.com -p 7834
[user@local]:~$

Outra Chave Privada para conexão:

Acesso SSH com uma Porta não padrão: 7834 e outra chave privada de acesso
1
2
user@local:$ ssh user@foo.bar.com -p 7834 -i ~/.ssh/my-other.key
[user@local]:~$

Com isso o resultado é sempre uma linha de comando grande para ser executada a cada tentativa de conexão. A solução que normalmente vejo as pessoas criar é um alias

Alias de conexão (BASH)
1
2
3
user@local: $ alias foo="ssh user@foo.bar.com -p 7834 -i ~/.ssh/my-private.key"
user@local: $ foo
[user@foo]: ~$

Essa é uma solução valida , mas o client de SSH ja possui a opção de passar certos valores baseados no Host que voce esta tentando acessar , bastando incluir esses valores em $HOME/.ssh/config

1
2
3
4
5
6
7
8
user@local:$  cat .ssh/config 
Host foo
  Hostname=foo.bar.com
  User=user
  Port=7834
  IdentifyFile ~/.ssh/my-private.key

user@local:$ ssh foo

GitHub

Utilizando dessa feature voce pode ter um grupo Host atribuido para o github com suas configurações especificas de acesso e permissão aos seus repositorios:

1
2
3
4
5
6
7
user@local:$  cat .ssh/config 
Host github
  HostName github.com
  User mygithubuser
  IdentifyFile ~/.ssh/github.key

user@local:$ git clone mygithubuser@github:mygithubuser/project.git

Com isso é possivel criar diversos blocos de conexão com os parametros que precisar e replicar isso utilizando cfengine se precisar não se preocupando se o usuario utilizando alguma shell baseada em Bourne Shell ou CSH

Maiores Informações:

ssh_config(5)

Comments