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
  • gpgme
  • libgpg-error
  • libgcrypt
  • libksba
  • libassuan
  • npth
  • 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. gpgme

./configure --prefix=/usr/local --with-libgpg-error-prefix=/usr/local --with-libassuan-prefix=/usr/local --with-pic --disable-gpgconf-test --disable-gpg-test --disable-gpgsm-test --disable-g13-test
 
make
sudo make install

5. 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

6. libksba

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

7. pinentry

./configure --prefix=/usr/local --enable-fallback-curses --enable-pinentry-curses --with-libgpg-error-prefix=/usr/local --with-libassuan-prefix=/usr/local
 
plus Optionen zur Aktivierung bzw. Deaktivierung zur Auswahl der Dialog-UIs: 
--[enable|disable]-pinentry-[efl|emacs|fltk|gnome3|gtk2|qt|tqt|tty]
 
make
sudo make install

8a. 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

8b. 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-ui /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