As buscas mais comuns para está informação são:
– Configurar ssh para não pedir senha
– Acessando o SSH sem senha
– SCP no crontab sem senha
– RSYNC com login automático
– Segurança com chave de autenticação
Chaves de autenticação
As chaves de autenticação são usadas principalmente em duas situações. Para maior segurança nas autenticações, obrigando que o cliente tenha as chaves de autenticação ao invés do login e senha. Ou para processos automatizados onde a maquina cliente não terá como autenticar digitando login e senha e portanto precisa de acesso direto ao servidor.
Como a coisa toda funciona?
De maneira bem simples, na estação serão geradas duas chaves únicas (dois arquivos), um destes arquivos é a chave pública que será enviada aos servidores aos quais se deseja acesso. Quando o cliente tenta se conectar a este servidor será verificada a chave (que deve ser igual no cliente e no servidor) comprovando que o computador que está se conectando é realmente o cliente autorizado.
“O GPG é um sistema de encriptação composto de duas chaves, uma chave pública, que é distribuída abertamente e uma chave privada, que é secreta. A cache privada pode ser utilizada para encriptar arquivos, que podem ser desencriptados apenas usando a chave pública. Isto é feito através de um truque matemático: a chave privada é uma espécie de equação extremamente complexa, que embaralha o conteúdo dos arquivos. A chave pública é um antídoto para ela, que permite reverter os dados a seu estado original. Porém, é impossível descobrir o conteúdo da chave privada usando a chave pública e é também impossível fazê-lo via força bruta.”
Chega de teoria, vamos para a prática
A primeira coisa a fazer é verificar se a maquina cliente já tem suas chaves de autenticação (id_rsa e id_rsa.pub), que ficam em ~/.ssh/ (ou /home/usuário/.ssh). Caso não existam o comando para criá-las é:
# criar os arquivos id_rsa e id_rsa.pub ssh-keygen -t rsa
Agora precisamos enviar a chave publica (id_rsa.pub) para o servidor, mas precisamente para o arquivo ~/.ssh/authorized_keys (/home/usuário/.ssh/authorized_keys). Isto pode ser feito de várias maneiras:
1) Enviando via ssh-copy-id
# copiar a chave publica automaticamente para o servidor – Executando no cliente ssh-copy-id -i ~/.ssh/id_rsa.pub seu_login@seu_servidor
2) Enviando via scp
#copiar o arquivo id_rsa.pub para o servidor – Executando no client scp ~/.ssh/id_rsa.pub seu_login@seu_servidor:~ # incluir o conteúdo do arquivo id_rsa.pub ao conteúdo do arquivo ~/.ssh/authorized_keys – Executando no servidor cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
3) Enviando via cat e ssh
# incluindo conteúdo remoto com cat e ssh cat ~/.ssh/id_dsa.pub | ssh seu_login@seu_servidor "cat - >> ~/.ssh/authorized_keys2"
(Para quem utiliza o serviço de cloud EC2 da amazon, está opção é muito útil, podendo incluir o parametro –i no ssh informando o arquivo de keypairs)
4) Copiando e colando
Neste caso simplismente copie o conteúdo do arquivo ~/id_rsa.pub no client e cole em ~/.ssh/authorized_keys no seu Server. Dá maneira que achar melhor.
Pronto! Agora é só conectar!
ssh seu_servidor
Caso a conexão falhe algum dos passos anteriores não foi concluído com sucesso. Envie como comentário o erro que lhe ajudo.