SSH
Antes de mais nada, sabe o que é SSH?SSH (Secure Shell) é um protocolo para login remoto seguro, ou seja um protocolo que visa fazer a comunicação entre dois hosts distantes através de um autenticação segura e em seguida troca de dados utilizando algoritmos de chave simétrica. Diferente de outras ferramentas como rsh, rcp, rlogin e telnet, o SSH codifica toda a comunicao.
Problema
Uma das coisas mais chatas é ficar acessando ssh e colocar a senha. Principalmente se você tem vários servidores para acessar, e faz isso com muita frequência, ou seja várias vezes ao dia.Solução
Uma forma de contornar isso é utilizar o:ssky-keygen e ssh-copy-id
Como Fazer?
Criar as Chaves na máquina local
1) Crie um par de chaves RSA (uma chave privada e uma chave pública) para autenticação, digitando:
ssh-keygen -t rsa
2) Será solicitado o local para armazenar a chave.
*Importante: Se você tem várias chaves criadas para cada servidor, é nesse passo que você terá que alterar o nome. Exemplo. Em vez de dar um "ENTER", digite:
/home/alexandre/.ssh/id_rsa_outroservidor
3) Será solicitado logo em seguida seu passphrase ou "frase secreta". É uma senha para indentificar que você é o proprietário da chave criada:
*Importante: Guarde essa senha que será usada posteriormente
Após isso sua chave será criada. 2 arquivos serão criados no diretório informado acima:
- id_rsa que é a chave privada
- id_rsa.pub que é a chave pública
Copiar as Chaves para o servidor remoto
Agora será necessário copiar sua chave no servidor remoto:
4) Para fazer a cópia digite:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
O que ele faz é copiar a chave pública (dá um append) dentro do arquivo "authorized_key". Ou seja ele automatiza esse passo.
5) Será solicitado passphrase (o mesmo que você digitou no passo 3)
6) Pronto! Você já estará acessando seu servidor remoto sem senha. É só testar:
ssh user@server
Obs:
Se a chave pública estiver em outro diretório ou você nomeou ele de outra forma passe o parâmetro i:
ssh -i /home/alexandre/.ssh/id_rsa_outroservidor user@server
Importante!
Não esqueça de dar as devidas permissões principalmente no servidor que você irá acessar:
chmod 600 /home/servidor/.ssh/authorized_key
chmod 700 /home/servidor/.ssh/
Outras dicas
1) HostnamePara gerenciar todos os servidores remotos é complicado.
Você pode criar hostname atrelado ao IP, modificando o arquivo:
sudo vi /etc/hosts
Colocando IP e depois o hostname.
Assim fica mais fácil lembrar dos servidores.
2) Gerenciador de SSH
Outra dica para não se perder, é usar uma aplicação que é um menu de conexões SSH.
Temos o SSHMenu para GNOME, e achei o Shuttle para Mac.
Ele é simples, pois é só editar um arquivo de configuração (um arquivo Json).
Se tiverem mais dicas, dá uma comentada. Sempre é bom termos opções e saber como outros desenvolvedores trabalham.