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!