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.
- Enigmail (bei Thunderbird Einsatz)