GnuPG Anleitung - Seite 4

Installation von GnuPG

Repository-Pakete

Unter Linux sollte GnuPG 2 bei jeder Distribution bei der Installation der Distribution automatisch mitinstalliert werden.

sudo aptitude install gnupg gpgv gpa pinentry-[gnome3|gtk2|qt4] scdaemon

installiert unter Debian GnuPG 2, gpg-agent, dirmngr, GPA, pinentry Anwendungen und scdaemon bei Verwendung von OpenPGP-Chipkarten. Statt des GPA kann man auch andere grafische GnuPG Oberflächen verwenden.

manuell

Wer parallel zu installierten GnuPG Komponenten die aktuellste GnuPG 2 „modern“ Version installieren will, kann der Anleitung folgen:

Vorarbeiten

Installation benötigter Entwicklungs-Bibliotheken:

sudo aptitude install libgnutlsNN-dev libldap2-dev libncursesN-dev libbz2-dev libreadlineN-dev sqlite3-dev

Installation aller GnuPG Komponenten

Zuerst Download aller Quellcode Archivdateien und ihrer GnuPG Signaturdateien per FTP:

  • GnuPG
  • Libgpg-error
  • Libgcrypt
  • Libksba
  • Libassuan
  • Pinentry

Falls der Distributions-Schlüssel von Werner Koch noch nicht im Schlüsselring vorhanden ist, den aktuellen Schlüssel suchen und importieren:

gpg --search-keys 0x249B39D24F25E3B6

Für jede Quellcode Archivdatei:

gpg --verify name-version.tar.bz2.sig name-version.tar.bz2
tar -xjf name-version.tar.bz2
cd name-version

Kompilierung

Die configure Aufrufe sind so gewählt, dass alle GnuPG und dirmngr Anwendungen in /usr/local/bin/ installiert werden und nicht auch in /usr/local/libexec/ und /usr/local/sbin/.

1. libgpg-error

./configure --prefix=/usr/local --enable-ld-version-script --with-pic
 
make
sudo make install

2. libassuan

./configure --prefix=/usr/local --with-libgpg-error-prefix=/usr/local
 
make
sudo make install

3. npth

./configure --prefix=/usr/local --with-pic
 
make
sudo make install

4. libgcrypt

./configure --prefix=/usr/local --enable-ld-version-script --enable-noexecstack --disable-hmac-binary-check --with-libgpg-error-prefix=/usr/local --with-pth-prefix=/usr/local --with-pic
 
ggf. plus CPU-spezifisch:
--disable-padlock-support
--disable-aesni-support
--disable-pclmul-support
--disable-drng-support
--disable-avx-support
--disable-avx2-support
--disable-neon-support
--disable-arm-crypto-support
 
make
sudo make install

5. libksba

./configure --prefix=/usr/local --enable-ld-version-script --with-libgpg-error-prefix=/usr/local
 
make
sudo make install

6. pinentry

./configure --prefix=/usr/local --[dis|en]able-pinentry-[emacs|gnome3|gtk2|qt|tty] --[dis|en]able-inside-emacs --with-libgpg-error-prefix=/usr/local --with-libassuan-prefix=/usr/local
 
make
sudo make install

Wer z. B. unter KDE neben der Curses nur die QT-Version von pinentry installieren will, setzt --disable-pinentry-gtk2 --disable-pinentry-gnome3 --enable-pinentry-qt.

7a. gnupg

./configure --prefix=/usr/local --exec-prefix=/usr/local --sbindir=/usr/local/bin --libexecdir=/usr/local/bin --disable-g13 --disable-selinux-support --disable-ntbtls --disable-gpg-idea --with-agent-pgm=/usr/local/bin/gpg-agent --with-pinentry-pgm=/usr/local/bin/pinentry --with-scdaemon-pgm=/usr/local/bin/scdaemon --with-dirmngr-pgm=/usr/local/bin/dirmngr --with-protect-tool-pgm=/usr/local/bin/gpg-protect-tool --with-dirmngr-ldap-pgm=/usr/local/bin/dirmngr_ldap --with-libgpg-error-prefix=/usr/local --with-libgcrypt-prefix=/usr/local --with-libassuan-prefix=/usr/local --with-ksba-prefix=/usr/local --with-npth-prefix=/usr/local
 
make
sudo make install

7b. GnuPG aus dem GnuPG GIT Repository klonen, kompilieren und installieren:

git clone git://git.gnupg.org/gnupg.git
cd gnupg
./autogen.sh --force
./configure --enable-maintainer-mode --prefix=/usr/local --exec-prefix=/usr/local --sbindir=/usr/local/bin --libexecdir=/usr/local/bin --disable-g13 --disable-selinux-support --disable-ntbtls --disable-gpg-idea --with-agent-pgm=/usr/local/bin/gpg-agent --with-pinentry-pgm=/usr/local/bin/pinentry --with-scdaemon-pgm=/usr/local/bin/scdaemon --with-dirmngr-pgm=/usr/local/bin/dirmngr --with-protect-tool-pgm=/usr/local/bin/gpg-protect-tool --with-dirmngr-ldap-pgm=/usr/local/bin/dirmngr_ldap --with-libgpg-error-prefix=/usr/local --with-libgcrypt-prefix=/usr/local --with-libassuan-prefix=/usr/local --with-ksba-prefix=/usr/local --with-npth-prefix=/usr/local
 
make
sudo make install

Nacharbeiten

Laut Informationen der man pages zu GnuPG und dem GPG-Agent wird zusätzlich die .bashrc für jeden Benutzer angepasst:

GNUPGHOME="$HOME/.gnupg"
export GNUPGHOME
GPG_TTY="$(tty)"
export GPG_TTY

In der Anleitung wird davon ausgegangen, dass root unter /root/.gnupg sein eigenes GnuPG Heimatverzeichnis mit eigenen Schlüsselringdatein, GnuPG und GPG-Agent Konfigurationen erhält, um dann als Benutzer mit „sudo -H“ GnuPG Operationen auszuführen.

Um nach der manuellen Installation bei Aufruf von gpg, gpgv usw. immer die eigene GnuPG Version zu verwenden, kann man enstprechende Aliase anlegen:

.bash_aliases
alias dirmngr='/usr/local/bin/dirmngr'
alias dirmngr-client='/usr/local/bin/dirmngr-client'
alias gpg='/usr/local/bin/gpg'
alias gpg2='/usr/local/bin/gpg'
alias gpg-agent='/usr/local/bin/gpg-agent'
alias gpgconf='/usr/local/bin/gpgconf'
alias gpg-connect-agent='/usr/local/bin/gpg-connect-agent'
alias gpg-preset-passphrase='/usr/local/bin/gpg-preset-passphrase'
alias gpgv='/usr/local/bin/gpgv'
alias gpgv2='/usr/local/bin/gpgv'
alias scdaemon='/usr/local/bin/scdaemon'

Für die pinentry Anwendung legt man noch einen Symlink an:

sudo ln -s /usr/local/bin/pinentry-version /usr/local/bin/pinentry

In Shellskripten wird der absolute Pfad zu gpg gesetzt:

#!/bin/sh
 
gpg="/usr/local/bin/gpg"
 
$gpg --optionen

Grafische GnuPG Oberflächen

Neben dem GPA gibt es weitere grafische Oberflächen (GUIs) für GnuPG.

Verweise auf aktuelle Seite