Acesso SSH com Aliases
Simplificando o Acesso SSH a Servidores Linux com Aliases no .bashrc
Para Sysadmins Linux que Valorizam Flexibilidade e Eficiência!
Este tutorial abrangente demonstra como utilizar aliases no seu arquivo .bashrc para simplificar o acesso SSH a múltiplos servidores Linux, oferecendo opções tanto para conexões com senha quanto para conexões mais seguras utilizando chaves SSH RSA. Este guia utilizará o vim como editor de texto padrão.
O Problema:
Sobrecarga de Informações: Lembrar de IPs, portas e métodos de autenticação (senha ou chave) para diversos servidores pode ser complexo.
Digitação Repetitiva: Inserir comandos SSH longos, especialmente com opções específicas, é demorado e propenso a erros.
Necessidade de Flexibilidade: Em algumas situações, a autenticação por senha pode ser temporariamente necessária ou preferível.
A Solução: Aliases SSH Versáteis no .bashrc
Criaremos aliases que podem incluir informações de usuário, IP e porta, e opcionalmente a especificação da chave privada RSA. Isso permitirá conexões rápidas tanto com senha (se a chave não for especificada ou a autenticação por chave falhar) quanto com chave SSH.
Passo 1: Abrindo e Editando o Arquivo .bashrc com Vim
Abra seu terminal Linux.
Abra o arquivo .bashrc com o editor de texto vim:
vim ~/.bashrc
(Lembre-se dos comandos básicos do vim: i para inserir, Esc para modo de comando, :wq para salvar e sair, etc.)
Passo 2: Criando seus Aliases SSH (Com e Sem Chave)
Adicione linhas ao final do arquivo .bashrc para cada servidor, definindo aliases que podem ou não incluir a opção de chave privada.
Sintaxe Básica:
Com chave SSH (opcional):
alias <apelido_chave>='ssh -i <caminho_para_chave_privada> <usuario>@<endereco_ip> -p <porta>'
Sem chave SSH (conexão via senha, se configurado no servidor):
alias <apelido_senha>='ssh <usuario>@<endereco_ip> -p <porta>'
Exemplos Práticos:
Servidor Web (acesso preferencial com chave padrão, porta padrão, usuário deploy, IP 192.168.1.20):
alias web-chave='ssh deploy@192.168.1.20'
alias web='ssh deploy@192.168.1.20'
Aqui, definimos dois aliases com o mesmo comando básico. Se a autenticação por chave (usando a chave padrão) estiver configurada corretamente, o alias web-chave (ou simplesmente web) se conectará sem senha. Se a chave não estiver configurada ou houver algum problema, o SSH tentará a autenticação por senha (se permitida no servidor).
Servidor de Banco de Dados (acesso exclusivo com chave não padrão em ~/.ssh/db_rsa, porta 3333, usuário admin, hostname db.exemplo.com):
alias db-admin='ssh -i ~/.ssh/db_rsa admin@db.exemplo.com -p 3333'
Neste caso, forçamos o uso da chave específica. Se a chave não for válida ou a autenticação falhar, a conexão provavelmente será recusada (dependendo da configuração do servidor).
Servidor de Backup (acesso preferencial com chave padrão, porta padrão, usuário backup, IP 10.0.0.10, com um alias alternativo para possível uso com senha):
alias backup-chave='ssh backup@10.0.0.10'
alias backup-senha='ssh backup@10.0.0.10'
Servidor de Monitoramento (acesso com chave específica em ~/.ssh/monitor_rsa, porta padrão, usuário observador, hostname monitor.interno):
alias monitor-acesso='ssh -i ~/.ssh/monitor_rsa observador@monitor.interno'
Estratégias de Alias:
Nomes Descritivos: Use sufixos como -chave ou -senha para distinguir claramente o método de autenticação pretendido (se você criar ambos para o mesmo servidor).
Priorização Implícita: Se você define apenas um alias (como web='ssh ...') e a autenticação por chave estiver configurada, ela será usada. Se não estiver, o SSH tentará a autenticação por senha.
Passo 3: Salvando e Carregando as Alterações com Vim
Salve o arquivo .bashrc e feche o vim:
:wq
e pressione Enter.
Carregue as alterações no seu terminal atual:
source ~/.bashrc
ou
. ~/.bashrc
Passo 4: Utilizando seus Novos Aliases
Agora você tem flexibilidade na forma de se conectar:
Para o servidor web (tentando primeiro a chave padrão, e possivelmente solicitando senha se falhar):
web
ou, explicitamente tentando a conexão com chave:
web-chave
Para o servidor de banco de dados (forçando o uso da chave específica):
db-admin
Para o servidor de backup (tentando primeiro a chave padrão, e com uma opção para tentar com senha se necessário):
backup-chave
ou
backup-senha
Para o servidor de monitoramento (usando a chave específica):
monitor-acesso
Benefícios da Abordagem Híbrida:
Flexibilidade: Adapte-se a diferentes configurações de servidor e necessidades de autenticação.
Segurança: Priorize a autenticação por chave quando configurada, mantendo a opção de senha quando necessário.
Organização: Mantenha seus atalhos de conexão gerenciáveis no .bashrc.
Dicas Adicionais:
Consistência: Adote uma convenção de nomenclatura consistente para seus aliases (por exemplo, usar -chave e -senha como sufixos).
Verificação: Após configurar seus aliases, teste cada um deles para garantir que a conexão funcione como esperado (com ou sem senha).
Segurança de Senhas: Se você ainda usa autenticação por senha, certifique-se de usar senhas fortes e exclusivas para cada servidor. Considere desabilitar a autenticação por senha em favor de chaves SSH para maior segurança.
Conclusão:
Ao criar aliases SSH versáteis no seu .bashrc, você ganha um controle ainda maior sobre como se conecta aos seus servidores Linux. A capacidade de definir aliases para conexões com e sem chave SSH oferece flexibilidade e conveniência, otimizando seu fluxo de trabalho e atendendo a diferentes cenários de autenticação. Use este guia com foco no vim para personalizar seus aliases e simplificar sua rotina de administração de sistemas.