LPIC102/110.3 Daten durch Kryptografie schützen
Erscheinungsbild
	
	
SSH Daemon
- Das Paket openssh-server installiert die serverseitige Komponente von SSH
 - Folgende Befehle starten unter systemd den SSH Dienst
 
# systemctl start sshd.service # systemctl enable sshd.service
SSH-Client
- Die Verbidung startet ssh
 - Host-Namen bzw. die IP-Adresse wird angegeben
 - Anschliessend folgt die Eingabe des Kennwortes
 
$ ssh server root@server's password:
- Zwei Wege um sich mit einem alternativen Benutzerkonto anzumelden
 
$ ssh -l willi server $ ssh willi@server
Grafische Anwendungen unter X tunneln
- SSH-Verbindung wird von einem X-Terminal aus mit der zusätzlichen Option -X (großes X) initiiert
 
$ ssh -X server
- Auf der Konsole des Remote-Systems führt man die Anwendung aus
 
$ libreoffice
- Grafische Ausgabe und 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
 
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 an 192.168.50.10:3389 weitergeleitet
 - Terminal-Dienste-Clients (z. B. remmina) nutzen nun als Ziel localhost:4711
 
Hinweis
Auch vom Windows-Computer aus kann mittels PuTTy auf einen Linux-Host zugegriffen werden 
Läuft ein X-Server auf dem Windows-Computer (z. B. Xming oder Cygwin), ist auch das Tunneln von Ports inklusive X11 durchführbar
SSH-Konfigurationsdateien
/etc/ssh/sshd_config
- Die Konfigurationsdatei sshd_config dient der Konfiguration von sshd, also den SSH-Server
 
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
Erläuterung:
- sshd verwendet den Standardport 22.
 - Ausschließlich SSH-2-Verbindungen.
 - Zugriff auf Schnittstelle des Rechners: 192.168.0.58
 - Kein login für root.
 - Als Hostkey kommen RSA, ECDSA und Ed25519 in Frage.
 
Hinweis
Auf die Authentifizierung mit Schlüsseln und ssh_known_hosts Datei wird später näher eingegangen
/etc/ssh/ssh_config
- Die Konfigurationsdatei ssh_config
 - Sie dient der clientseitigen Konfiguration von SSH
 
z.B. Clientseitige X11-Weiterleitung oder Passwortauthentifizierung RSA-Authentifizierung aktiv Standardport für ausgehende Verbindungen festlegen
- Die Optionsnamen innerhalb dieser Datei sind ansonsten selbsterklärend oder in der Manpage nachzuschlagen
 - Die beiden gerade besprochenen Dateien kann man aufgrund ihrer Namensähnlichkeit schnell verwechseln
 
/etc/hosts.allow und /etc/hosts.deny
- Die beiden Dateien steuern wie die oben beschriebenen Dateien, den Zugriff auf SSH
 - hosts.allow hat Vorrang vor der Datei hosts.deny
 - Wird einem Host der Zugriff auf SSH durch hosts.allow gewährt, kann das durch keinen Eintrag in hosts.deny zurückgenommen werden
 
/etc/nologin
- Mit dem erstellen einer leeren Datei namens /etc/nologin lässt sich der Zugriff auf SSH verhindern
 - Nur root kann sich dann noch am System anmelden
 - In dieser Datei kann auch eine Nachricht an Benutzer hinterlassen werden die sich lokal anmelden wollen
 
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/