LPIC102/110.3 Daten durch Kryptografie schützen
Wichtigste Wissensgebiete
- einen OpenSSH-2-Client grundlegend konfigurieren und verwenden
- die Rolle von OpenSSH-2-Rechnerschlüsseln verstehen
- GnuPG grundlegend konfigurieren und verwenden
- GPG verwenden um Dateien zu verschlüsseln, entschlüsseln, signieren und zu überprüfen
- SSH-Port-Tunnel (auch X11-Tunnel) verstehen
Liste wichtiger Dateien, Verzeichnisse und Anwendungen
- ssh
- ssh-keygen
- ssh-agent
- ssh-add
- ~/.ssh/id_rsa und id_rsa.pub
- ~/.ssh/id_dsa und id_dsa.pub
- ~/.ssh/id_ecdsa und id_ecdsa.pub
- ~/.ssh/id_ed25519 und id_ed25519.pub
- /etc/ssh/ssh_host_rsa_key und ssh_host_rsa_key.pub
- /etc/ssh/ssh_host_dsa_key und ssh_host_dsa_key.pub
- /etc/ssh/ssh_host_ecdsa_key und ssh_host_ecdsa_key.pub
- /etc/ssh/ssh_host_ed25519_key und ssh_host_ed25519_key.pub
- ~/.ssh/authorized_keys
- ssh_known_hosts
- gpg
- gpg-agent
- ~/.gnupg/
SSH verwenden
Die serverseitige Komponente von SSH lässt sich mit dem Paket openssh-server installieren. Ist systemd zuständig, führen Sie falls nötig die folgenden beiden Kommandos aus um den SSH Dienst zu starten:
user:~ # systemctl start sshd.service user:~ # systemctl enable sshd.service
Hinweis
Zwar unterstützt sshd die Verwendung eines TCP-Wrappers und ist auch von inetd
bzw. xinetd aus startbar, aber diese Vorgehensweise wird nicht empfohlen.
SSH-Client-Verbindung
Um eine Verbindung von einem Linux-System zu einem anderen aufzubauen, startet man ssh und übergibt den Host-Namen bzw. die IP-Adresse. Dann wird man zur Eingabe eines Kennwortes aufgefordert:
user:~ # ssh server root@server's password:
Um sich nicht mit dem gleichen Benutzerkonto anmelden zu müssen, das man derzeit lokal verwendet, gibt es zwei Wege einen alternativen Benutzer anzugeben:
user:~ # ssh -l willi server user:~ # ssh willi@server
Grafische Anwendungen unter X tunneln
Zuerst wird die SSH-Verbindung von einem X-Terminal aus initiiert.
Verbindung zusätzlich mit der Option –X initiieren (großes X).
user:~ # ssh -l willi -X server
Auf der Konsole des Remote-Systems führt man die Anwendung aus:
willi@server's password: willi@server:~ # openoffice
Die Anwendung führt das entfernte System aus, die grafische Ausgabe und die Bedienung erfolgt lokal am SSH-Client-Rechner.
Das hier beschriebene Verfahren wird als X11-Tunnel bezeichnet.
Weiterleitung anderer Ports durch einen SSH-Tunnel.
Als Beispiel der Zugriff auf einen Terminalserver im entfernten Netzwerk, hinter einem SSH-Server.
IP-Adresse des Terminalservers 192.168.50.10
Terminalserver lauscht an Port 3389
IP des SSH-Server 119.117.63.126
Zunächst wird die SSH-Verbindung initiiert:
archangel:~ # ssh 119.117.63.126 -L 4711:192.168.50.10:3389
Option -L leitet Port 4711 an 192.168.50.10 mit Portnummer 3389 weiter. Verbindungen werden nun an 192.168.50.10:3389 weitergeleitet. Terminal-Dienste-Clients (z. B. remmina) nutzen nun als Ziel localhost:4711
Hinweis
Wenn Sie von einem Windows-Computer aus auf einen Linux-Host zugreifen wollen,
kommt das frei verfügbare SSH-Client-Programm putty zum Einsatz.
Das Tunneln von Ports inklusive X11 ist auch mit putty durchführbar.
Voraussetzung hierfür ist, dass auf dem Windows-Computer ein X-Server läuft (z. B. Xming oder Cygwin).
PuTTY - ein freier SSH-Client
SSH-Konfigurationsdateien
/etc/ssh/sshd_config
Die Datei sshd_config wird für die Konfiguration von sshd, also den SSH-Server, verwendet. Hier können z. B. folgende Parameter festgelegt werden:
Port 22 Protocol 2 ListenAddress 192.168.0.58 PermitRootLogin no HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_key
# sshd verwendet den Standardport 22. # Ausschließlich SSH-2-Verbindungen. # Kein login für root. # Zugriff auf Schnittstelle des Rechners: 192.168.0.58 # Als Hostkey kommen RSA, ECDSA und Ed25519 in Frage.
Auf Schlüssel wird etwas später näher eingegangen.