WARNING: UNPROTECTED PRIVATE KEY FILE!

Apesar do título um tanto assustador, o que vou compartilhar hoje é, no final das contas, até simples.

Eu tive esse problema duas vezes, e quando as coisas começam a se repetir é um sinal de que a solução deve ser registrada para ficar a disposição para uma possível nova repetição do problema.

Bom, vamos descrever o que ocorre. Eu tenho meu par de chaves privada/publica muito bem guardadas. Ah sim a pública não precisa de tanta proteção assim, está disponível aqui mesmo no meu site assim se eu precisar enviar para alguém é só passar o link. Já a privada, essa tem que estar guardada a sete chaves! E tenho ambas para mim com fácil acesso e quando por qualquer motivo mudo de computador ou algo assim, não preciso criar novo par e ter que substituir a chave pública em todos os lugares que a uso!

Contudo já me aconteceu duas vezes que ao copiar meu par de chaves para o diretório .ssh dentro do meu diretório /home e, ao executar a criação de um novo repositório remoto, adicioná-lo localmente e tentar executar o seguinte comando pela primeira vez:

~/meu_novo_repo/$ git pull origin master

eu tenho a seguinte saída de erro:

~/meu_novo_repo/$ git pull origin master
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0464 for '/home/riverfount/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/riverfount/.ssh/id_rsa": bad permissions
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
~/meu_novo_repo/$

Vejam, o erro diz que minha chave privada, que encontrase no arquivo id_rsa está muito exposta e que é requerido que ela não seja tão acessível como ela se encontra, isso acontece pois ela está com as seguintes permisões:

~/.ssh/$ ls -lha id_rsa
~/.ssh/$ -rw-rw-r--. 1 riverfount riverfount  750 mar  7 16:20 id_rsa
~/.ssh/$

Ou seja, com permissões de leitura e escrita para o proprietário e seu grupo e com permissão de leitura para outros. Esse conjunto de permissões é considerado muito aberto para a chave privada, assim, temos que executar o famoso chmod e alterar essas permissões da seguinte forma:

~/.ssh/$ chmod 400 id_rsa
~/.ssh/$ 

Assim feito, a minha chave privada passa ter as seguintes permissões:

~/.ssh/$ ls -lha id_rsa
~/.ssh/$ -r--------. 1 riverfount riverfount  750 mar  7 16:20 id_rsa
~/.ssh/$

Percebam que é bem mais restritiva, afinal de contas somente o proprietário do arquivo tem permissão de leitura no mesmo. E, assim, podemos executar normalmente nosso git pull que tudo correrá bem. Ah! Claro, será pedida sua senha na primeira execução do git.

Espero ter ajudado com esse pequeno relato de experiência!

About Prof. Vicente E. R. Marçal

Professor Adjunto do Departamento de Filosofia da Universidade Federal de Rondônia. Doutorando em Psicologia Social pelo Instituto de Psicologia da USP. Mestre em Filosofia pela Universidade Estadual Paulista/Campus Marília. Especialista em Filosofia Moderna e Contemporânea: Aspectos Éticos e Jurídicos pela Universidade Estadual de Londrina. Licenciado em Filosofia pela Universidade Estadual de Londrina. Coordenador do GEPEGRA - Grupo de Estudos e Pesquisa em Epistemologia Genética da Região Amazônica. Com experiência em Filosofia, com ênfase em Epistemologia e Teoria do Conhecimento.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

This site uses Akismet to reduce spam. Learn how your comment data is processed.