Criando chaves de auntenticação no linux

Realizando conexões sem informar login e senha

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.



Assuntos





Comentários em "Criando chaves de auntenticação no linux"

  1. Welington Veiga

    Essa questão de manipulação de chaves públicas é um pouco mais complicado do que parece à primeira vista, mas a gente só percebe isso quando a coisa aperta! Muito bom o tutorial, já favoritei aqui pra quando eu for mecher com chaves denovo já ter uma referência simples e confiável! Grande abraço e feliz natal!

Participe comentando!


Outros posts interessantes