Importar Chave GPG

O presente artigo acompanha um script para automatizar a importação de chave privada GPG (GnuPG) em computador com distribuição GNU/Linux.

[ Hits: 2.196 ]

Por: Vinicius Araujo Lopes em 07/08/2019


Introdução



Opa! Belesma?

Se você já possui uma chave GPG e não lembra quais os comandos para importá-la para seu computador, você vai gostar desse artigo!

Certa feita, eu precisei de um programa que não tinha no sistema. O programa também não estava disponível para download no repositório oficial da Mazon Os. Daí, eu pensei: "Já sei! Vou empacotar e aproveito pra disponibilizar pra galera!" :D

Como eu estava em outro computador da minha rede, precisava da minha chave privada GPG. Não é uma coisa que se faz toda hora, afinal, a chave é privada e não deve ser instalada em qualquer computador... ou, em todos os computadores que usamos. Por isso, minha chave só estava presente no meu notebook pessoal de trabalho.

Trata-se de um procedimento simples... quando se lembra como se faz. :|

Para variar, eu não lembrava como se fazia. Lembrava vagamente que tinha um argumento "--import" no comando do GPG e que tinha um tal de loopback em algum lugar... enfim, tive que pesquisar no fórum da Mazon OS.

Depois de alguns dias, inventei de instalar outro sistema operacional no meu notebook e precisava importar minha chave privada novamente. Adivinha se eu lembrei! E lá vamos nós pra pesquisa novamente...

Fazendo minhas experiências mirabolantes, eu quebrei o sistema, mas não consegui recuperar, por que dei um "rm -rf" onde não devia. (cry).

E mais uma vez, lá vai o Vovolinux, importar a chave. Mas, e os comandos? Já se passavam mais de dois meses que eu tinha feito pela última vez e não tinha a menor chance de eu lembrar. Foi então que eu resolvi fazer um script pra importar a chave e nunca mais esquecer os comandos. Dito e feito! Trabalhei algumas horas e deixei o script prontinho.

O script se chama install-gpgkey e está no final artigo. O código fonte, bem como todas as instruções de uso estão disponibilizadas no meu repositório GitHub para quem quiser. Agora que temos esse script, importar chave GPG é simples como voar! :P

Instalação

A instalação é bem simples, no terminal utilize o usuário root:

su -

Faça o download:

# wget -O /usr/bin/install-gpgkey https://raw.githubusercontent.com/Viniciusalopes/install-gpgkey/master/install-gpgkey.sh

Conceda as permissões de execução:

# chmod +x /usr/bin/install-gpgkey

E só! Abaixo veremos como utilizar este script.

Instruções de uso

Assim como a instalação, utilizar o script é bem simples.

Para importar uma chave privada GPG, digite no terminal:

# install-gpgkey /

Exemplo: supondo que eu tenha um arquivo de chave privada já exportada, com o nome 'minhachave.key' e que esta chave esteja em /home/minhapastab, o comando acima ficaria assim:

# install-gpgkey /home/minhapasta/minhachave.key

Para ver um texto de ajuda, digite no terminal:

# install-gpgkey -h
Ou então:
# install-gpgkey --help

Não disse! É simples como voar! :p

Abaixo, veremos o código fonte do script "install-gpgkey".

O script

Pois bem, segue abaixo o script na data da inclusão deste artigo.

Para saber se existem modificações ou melhorias nele, você pode acessar o código fonte no meu repositório no GitHub em:
Sugestões de melhorias e novas soluções também são bem vindas!

#!/usr/bin/env bash
# Template orgulhosamente criado por (Shell-Base) tks SlackJeff
#-----------HEADER-------------------------------------------------------------|
#AUTOR
#  Vovolinux
#
##DATA-DE-CRIAÇÃO
#  16/07/2019 ás 14:19
#
#PROGRAMA
#  install-gpgkey
#
#PEQUENA-DESCRIÇÃO
#  Script para automatizar a instalação de chave gpg privada.
#
#LICENÇA
#  MIT
#
#HOMEPAGE
#  https://github.com/Viniciusalopes/install-gpgkey
#
#CHANGELOG
#
#------------------------------------------------------------------------------|

# Interrompe a execução em caso de qualquer erro
set -e

#------- VÁRIAVEIS -------->

################################################################################
#   >>> CUIDADO!!! O SCRIPT PODE APAGAR O CONTEUDO DO DIRETÓRIO dir_gpg <<<    #
# Valor padrão:                                                                #
# dir_gpg='/root/.gnupg'                                                       #
dir_gpg='/root/.gnupg'                                                         #
#   >>> CUIDADO!!! O SCRIPT PODE APAGAR O CONTEUDO DO DIRETÓRIO dir_gpg <<<    #
################################################################################

### LEU AQUI EM CIMA??? ^^

#------- MENSAGENS -------->

msg_dir_existe='O diretório já existe!'
msg_arquivo_invalido='[ ERRO ] Arquivo inválido!'
msg_ate_breve='OK.\nAté breve!'

#----- FIM-MENSAGENS ------>

#----- FIM-VARIAVEIS ------>

#--------FUNÇÕES----------->
ajuda(){
cat << EOF

 INSTRUÇÕES:

    install-gpgkey /
        -> Importa uma chave privada gpg.

    install-gpgkey -h
    install-gpgkey --help
        -> Ver esta ajuda.

EOF

}

# Checagem inicial e obtenção do caminho do arquivo com a chave
check()
{
    # Sem root não vai, amiguinho.
    [[ "$UID" -ne '0' ]] && { echo "Execute como root."; exit 1 ;}

    # Verificando se o local da chave foi passado
    if [[ ! -e "$chave" ]]; then
        echo -e "${msg_arquivo_invalido} (${chave})"
        ajuda
        exit 1
    fi

    # Verificando se o diretório existe
    if [[ -d "${dir_gpg}" ]]; then
        #dir_gpg já existe
        echo -e "${msg_dir_existe}"
        read -ep "Deseja REALMENTE excluir TODOS os arquivos em '${dir_gpg}' ? [s/N ]: " -n 1

        case "$REPLY" in
             s|S) certeza ;;
            *) sair  ;;
        esac
    fi
}

certeza()
{
    read -ep "Você tem CERTEZA ? [s/N ]: " -n 1

    case "$REPLY" in
        s|S) absoluta ;;
        *) sair  ;;
    esac
}

absoluta()
{
    read -ep "Você tem certeza ABSOLUTA ? [s/N ]: " -n 1

    case "$REPLY" in
        s|S) instalar ;;
        *) sair  ;;
    esac

}

instalar()
{
    echo -e 'Então tá. E lá vamos nós...'
    rm -rfv $dir_gpg/*
    if ! [[ -d "${dir_gpg}" ]]; then
        mkdir -v /root/.gnupg      # cria o dir_gpg
    fi

   # Instala
    echo 'Criando o arquivo '
    echo 'pinentry-mode loopback' >> ${dir_gpg}/gpg.conf
    gpg --import $chave
    echo -e 'Importação concluída!'
    sair
}

sair()
{
    echo -e "${msg_ate_breve}"
    exit 0
}
#-------------------------->

# Programa começa aqui :)

case $1 in
    -h|--help)
        ajuda
        exit 0
    ;;

    *)
        chave="${1}"
        check
        inicius
    ;;
esac
exit 0

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

GNU/Linux + Dogmas

Leitura recomendada

Entenda o que é Hardening

ProFTPD + ClamAV - FTP livre de vírus

OUTGUESS: Oculte mensagens em fotos

From Deploy WAR (Tomcat) to Shell (FreeBSD)

Defesa pessoal com o GPG, Nautilus Scripts, partições encriptadas e leves doses de paranoia

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts