Automatizar a importação de chave privada GPG (GnuPG)

Publicado por Vinicius Araujo Lopes (última atualização em 02/09/2019)

[ Hits: 1.918 ]

Homepage: www.viniciusalopes.com.br

Download install-gpgkey.sh




Este script foi criado para facilitar a importação da chave privada GPG em um computador com a distribuição Gnu/Linux Mazon Os, mas pode ser utilizado em qualquer sistema operacional. Simples como voar! ;)

O código fonte, bem como todas as instruções de uso estão disponibilizadas no meu repositório GitHub para quem quiser! :D

Repositório do código: https://github.com/Viniciusalopes/install-gpgkey

Utilizem com moderação!

Atenciosamente,
Vovolinux

  



Esconder código-fonte

#!/usr/bin/env bash
# Template orgulhosamente criado por (Shell-Base) tks SlackJeff
#-----------HEADER-------------------------------------------------------------|
#AUTOR
#  Vovolinux <suporte@vovolinux.com.br>
#
##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 <local-da-chave>/<arquivo.key>
        -> 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

Scripts recomendados

Sistema de Gestão de Protocolos em YAD

Restaura gerenciador de boot grub

Visualizar .DOC sem o Openoffice,Abiword,etc.

Script para automatizar compilação e instalação do Squid

Shell para extrair informações de impressoras Brother


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts