SSH/de

SSH (Secure SHell) ist ein verschlüsseltes Terminal-Programm, dass das klassische telnet-Tool auf unixoiden Betriebssystemen ersetzt.

Zusätzlich zum Terminal-Fernzugriff, welcher durch das Hauptprogramm bereitgestellt wird, enthält die SSH-Programmsammlung inzwischen auch andere Werkzeuge wie  (secure copy) oder  (secure file transfer protocol).

Ursprünglich war SSH nicht frei. Heute ist die populärste und de-facto Standard-Implementation OpenBSD's OpenSSH, welche bei Gentoo vorinstalliert ist.

Installation überprüfen
Die meisten Bereitstellungen von Gentoo Linux haben OpenSSH bereits auf dem System installiert. Dies kann durch Ausführen des -Befehls überprüft werden. Sofern es installiert ist sollte eine Gebrauchsanweisung ausgegeben werden:

Wenn keine Gebrauchsanweisung ausgegeben wird ist entweder beschädigt oder nicht installiert. Es ist auch möglich dass ein Nutzer OpenSSH neu baut um eine neue USE-Konfiguration zu inkludieren. Wie auch immer, zum Betrachten von möglichen USE-Konfigurationen weitermachen.

Emerge
Nach dem Ändern der notwendigen USE-Flags das Installieren oder Neubauen von OpenSSH nicht vergessen:

Schlüssel erstellen
Um eine sichere Shell bereitzustellen, werden kryptographische Schlüssel für die Ver- und Entschlüsselung sowie Hashing-Funktionen von SSH benutzt.

Beim ersten Start des SSH-Services werden die System-Schlüssel erzeugt. Diese können mittels des -Befehls (neu-)erstellt werden.

Um die Schlüssel für das SSH-Protokoll Version 2 zu erzeugen (DSA und RSA Algorithmen):

The article Secure Secure Shell suggests using Ed25519 and RSA public key algorithms with:

Server-Konfiguration
Der SSH Server wird normalerweise in der Datei konfiguriert, weitere Einstellungen, einschließlich des Ortes, an dem sich die obige Konfiguration befindet, können in  getätigt werden, inklusive das Ändern des Ortes der Konfigurationsdatei. Für Details über die Konfiguration sollte die man page "sshd_config" konsultiert werden.

Benutzer sollten für eine sicherheitsfokussierte Konfiguration Sven's OpenSSH guide studieren.

The server provides means to validate its configuration using test mode:

Klient-Konfiguration
Der -Klient und zugehörige Programme (,, etc.) können in den folgenden Dateien konfiguriert werden:



Für weitere Information das -Handbuch lesen:

Eindringensvermeidung
SSH ist ein oft angegriffener Dienst. Werkzeuge wie sshguard und fail2ban überwachen Logs und blacklisten entfernte Nutzer die wiederholt versuchten und scheiterten, sich anzumelden. Wie benötigt verwenden um ein häufig attackiertes System abzusichern.

OpenRC
Den OpenSSH-Daemon zum Default-Runlevel hinzufügen:

Den sshd-Daemon starten mit:

Der OpenSSH-Server kann wie jeder andere OpenRC-Dienst gesteuert werden:

Systemd
Um den OpenSSH-Daemon mit dem System zu starten:

Um den OpenSSH-Daemon jetzt zu starten:

Um zu überprüfen ob der Dienst gestartet wurde:

Escape sequences
During an active SSH session, pressing the tilde key starts an escape sequence. Enter the following for a list of options:

Passwortlose Authentifizierung
Praktisch für das Verwalten von git-Servern.

Klient
Auf dem Klienten folgenden Befehl ausführen:

Server
Sicherstellen dass ein Konto für den Nutzer auf dem Server existiert und dann die Klienten--Datei in der -Datei des Servers im Heimverzeichnis des Nutzers platzieren.

Afterwards a passwordless login should be possible doing

Then on the server, the file should be set to.

Einzel-Maschinen-Test
Die oben beschriebene Prozedur kann lokal getestet werden:

Fehlersuche
Es gibt drei verschiedene Level von Debug-Modi, die bei der Problemlösung helfen können. Mit der -Option gibt SSH Debugging-Nachrichten über seinen Fortschritt aus. Dies ist hilfreich bei dem Debugging von Verbindungs-, Authentifikations- und Konfigurationsproblemen. Mehrfache -Optionen erhöhen die Verbosität. Das Maximum ist drei.

Abbruch langlebiger Verbindungen
Viele Geräte, die Zugriff zum Internet anbieten, benutzen dafür Network Address Translation (NAT), ein Prozess der Geräten in einem privaten Netzwerk (typischerweise in Heim- oder Berufsumgebungen) Zugriff auf fremde Netzwerke wie dem Internet ermöglicht, obwohl sie nur eine einzige IP-Adresse in diesem fremden Netzwerk besitzt. Leider funktionieren diese NAT-Geräte nicht alle gleich und manche von ihnen schließen langlebige, nur gelegentlich genutzte TCP Verbindungen wie die von SSH. Man erkennt das daran, dass man auf einmal nicht mehr mit dem entfernten Computer interagieren kann, obwohl das -Klienten-Programm nicht beendet wurde.

Um dieses Problem zu lösen, können OpenSSH-Klienten und -Server so konfiguriert werden, dass sie eine unsichtbare "keep alive" Nachricht senden, deren Ziel das Aufrechterhalten der Verbindung ist:


 * Um Keep-Alive für alle Klienten, die sich mit dem lokalen Server verbinden, zu aktivieren,  (oder einen anderen Wert, in Sekunden) in der -Datei setzen.
 * Um Keep-Alive für alle Server, mit denen sich der lokale Klient verbindet, zu aktivieren,  (oder einen anderen Wert, in Sekunden) in der -Datei setzen.

X11-Weiterleitung, keine Portweiterleitung oder Tunnelung
Problem: Nachdem die nötigen Veränderungen an den Konfigurationsdateien gemacht sind, wird bemerkt dass X-Applikationen auf dem Server ausgeführt und nicht an den Klienten weitergeleitet werden.

Lösung: Was vermutlich während der SSH-Anmeldung auf dem Server passiert, die DISPLAY -Variable ist entweder nicht gesetzt oder wird gesetzt nachdem die SSH-Sitzung sie setzt.

Wenn das Szenario zutrifft, kann es wie folgend nach dem Anmelden auf dem Server getestet werden:

Die Ausgabe sollte in etwa ähnlich zu  oder   mit der serverseitigen Einstellung   sein. Wenn das übliche  nicht ausgegeben wird, sicherstellen dass die DISPLAY -Variable in  nicht ungesetzt oder reinitialisiert ist. Wenn sie es ist, jegliche Initialisierung der DISPLAY -Variable entfernen oder auskommentieren um die Ausführung des Codes in bei einer SSH-Anmeldung zu verhindern:

im Kommando oberhalb mit dem passenden Benutzernamen ersetzen.

Ein Trick der funktioniert wäre ein alias innerhalb der -Datei zu definieren.

ssh-agent
OpenSSH comes with, a daemon to cache and prevent from frequent ssh password entries. When run, the environment variable SSH_AUTH_SOCK is used to point to ssh-agent's communication socket. The normal way to setup is to run it as the top most process of the user's session. Otherwise the environment variables will not be visible inside the session.

Depending on the way the graphical user session is configured to launch, it can be tricky to find a suitable way to launch. As an example for the display manager, you may edit and change  from

into

To tell the password once per session, either run   manually or make use of the   option.

Recent Xfce will start (and ) automatically. If both are installed both will be started which makes identity management especially with SmartCards more complicated. Either stop XFCE from autostarting at least SSH's agent or disable both and use your shell, X-session or similar.

Siehe auch

 * Den SSH-Dienst absichern im Gentoo Sicherheits-Handbuch
 * Gentoo Linux Keychain Guide
 * autossh - Detektiert wenn SSH-Verbindungen abbrechen und verbindet erneut.
 * SCP - Ein Secure-Copy-Programm das in der SSH-Suite enthalten ist.
 * SFTP - Secure-File-Transfer-Protocol-Klient der in der SSH-Suite enthalten ist.
 * SSHFS - Ein FUSE- und SSH-basierter Mount-Klient.

Externe Ressourcen

 * Securing OpenSSH - Gentoo-Entwickler-Dokumentation.