Contents
ausstehende Aufgaben: Übersetzen der französischen Seite (mein französisch ist leider dafür zu nicht gut genug), welche genauerer Informationen bietet und Zusammenführen mit dieser Seite (und mit der englischen Seite)
Erläuterung
SSH steht für secure shell und ist ein Programm für das sichere Login auf entfernte Computer, um dort einzelne Befehle über eine verschlüsselte Verbindung auszuführen. Details zu SSH findet man unter Wikipedia - Secure Shell und für allgemeinere Informationen unter Wikipedia - OpenSSH. Die englischsprachige OpenSSH Homepage findet man unter OpenSSH (SSH ersetzt das unverschlüsselte Telnet Protokoll und ergänzt es durch weitere zusätzliche Funktionen).
Dieses Dokument setzt voraus, dass folgenden zwei Variablen definiert sind:
remote_host=<der entfernte Computer> remote_user=<ein Name auf dem entfernten Rechner>
Wenn Sie also die nachfolgende Anleitung verwenden wollen, setzen Sie bitte diese Variablen auf Ihrem Rechner für den Namen des entfernten Computers und den Benutzernamen auf dem entfernten Rechner. Das Ausschneiden und Einfügen der oben genannten Zeilen sollte funktionieren und als entfernetn Computer kann man auch die IP-Adresse angeben.
entferntes Login
Wenn man zum Beispiel als Benutzer heinz sich auf dem entfernten Rechner server anmelden will, reicht die Eingabe folgender Zeile aus:
ssh heinz@server
Man sollte jedoch sicher sein, dass der Name des Servers server in eine IP-Adresse umgewandelt werden kann oder gleich die IP-Adresse des Servers statt des Namens verwenden.
Wenn der Nutzername auf dem lokalen und dem entfernten Rechner gleich ist, kann sogar der Teil vor dem @ inclusive des @ selbst weg gelassen werden. Zum Verbindungsaufbau wird dann nur noch der Rechnername des Ziels oder dessen IP-Adresse benötigt:
ssh server
oder
ssh 192.168.1.29
Wenn man sich das erste Mal auf diesem entfernten Rechner anmeldet, fragt SSH, ob man sich wirklich sicher ist, dass man sich mit diesem System verbinden will. Bestätigen Sie mit 'ja' und tippen Sie das Passwort des Nutzers (in oben genanntem Beispiel das Passwort vom Anwender heinz) ein. SSH wird Sie dann auf der entfernten Maschine anmelden.
entfernte Befehle
Soll nur ein einzelner Befehl auf dem entfernten Rechner ausgeführt werden, so ist ein Anmelden nicht erforderlich. Man kann SSH wie folgt mitteilen, einen Befehl auch ohne Anmeldung auszuführen:
ssh heinz@192.168.1.29 'ls *.txt'
Dieses Kommando listet alle Dateien mit der Endung .txt auf dem entfernten System auf. Dieses funktioniert mit einfachen Hochkommata (') wie in diesem Beispiel, mit Anführungszeichen (") oder auch ganz ohne. Die Schreibweise kann zwischen diesen drei Möglichkeiten variieren, aber es wird hier nicht weitere darauf eingegangen und im Bedarfsfall ist es in der Dokumentation zum SSH nachzulesen.
SSH ohne Passwort
Wenn man sehr häufig auf entfernten Rechnern arbeitet, kann das Eintippen des Passworts sehr lästig werden, da es bei jedem Verbindungsaufbau neu eingegeben werden muss. Man kann SSH jedoch so konfigurieren, dass nicht nach einem Passwort gefragt wird. Hierzu muss man allerdings auf dem lokalen Rechner einen privaten und einen öffentlichen Schlüssel erzeugen und den öffentlichen Schüssel auf den entfernten Rechner transportieren.
Um einen Schlüssel zu erzeugen, ist folgendes Kommando abzusetzen und alle nachfolgenden Fragen mit den Vorgabewerten zu beantworten, indem nur die Eingabetaste (Return- oder Enter-Taste) betätigt wird:
ssh-keygen -t dsa
Damit der entfernte Computer den Schlüsselaustausch unterstützen kann, muss im Verzeichnis .ssh des Anwenders auf der entfernten Maschine der gerade erzeugte öffentliche Schlüssel der Datei authorized_keys auf dem entfernten System angehängt werden. Sind Verzeichnis .ssh und die Datei authorized_keys auf dem entfernten System nicht vorhanden, sind sie zuerst anzulegen.
Hier nun die benötigten Befehle, wobei der Benutzername heinz und der Rechnername server den tatsächlichen Gegebenheiten in Ihrem Netzwerk anzupassen sind:
ssh heinz@server mkdir -p .ssh cat .ssh/id_dsa.pub | ssh heinz@server 'cat >> .ssh/authorized_keys'
Beachten Sie, dass hier der cat Befehl mit dem SSH Kommando seinen Inhalt aus der Umleitung der Ausgabe des ersten cat Befehls erhält.
Eine andere Möglichkeit ist, das folgende Kommando anzuwenden:
ssh-copy-id -i ~/.ssh/id_dsa.pub heinz@server
Von nun an sollte es möglich sein, ohne Passwort sich am Zielsystem anzumelden.
HINWEIS: Wenn der Benutzername auf dem entfernten und dem lokalen Rechner gleich ist und wenn beide Computer das selbe Heimatverzeichnis für den Nutzer verwenden, zum Beispiel wenn sie unterschiedliche Klienten im selben LAN sind, die aber das selbe Verzeichnis mittels NFS nutzen, dann liegen die Dateien für den privaten und für den öffentlichen Schlüssel sowie für die Datei authorized_keys im selben Verzeichnis. Damit ist eine Anmeldung ohne Passwort am entfernten System oder vom entfernten System nicht möglich. Eine Anmeldung von oder zu anderen Systemen im Netzwerk ist jedoch möglich. (Der Nutzername@Rechnername Eintrag am Ende des öffentlichen Schlüssels in der Datei authorized_keys hat dan keine Bedeutung für das SSH und man kann ihn löschen oder ändern (denkt der englische Verfasser).
HINWEIS: Das Beispiel zuvor verwendet SSH in der Protokoll-Version 2 und nutzt DSA für die Verschlüsselung, welches zur Zeit der Erstellung des englischsprachigen Dokuments die Empfehlung war. Eine andere Möglichkeit ist die Verwendung des RSA Algorithmus für SSH Version 2. SSH Version 1 nutzt andere Verschlüsselungsverfahren und sollte möglichst nicht mehr verwendet werden.
FEHLERSUCHE (SSH fragt weiterhin nach einem Passwort): Anmeldung ohne Passwort funktioniert nicht, wenn die Schreibrechte auf dem entfernten Rechner für das Heimatverzeichnis auch für die Gruppe oder für alle gesetzt ist. Um dieses Problem zu lösen, sollten die Rechte wie folgt angepasst werden:
ssh $entfernter_Anwendername@$entfernter_Rechner chmod g-w,o-w /home/entfernter_Anwendername
Für das oben genannte Beispiel mit dem Anwender heinz und dem entfernten Rechner mit dem Namem server lautet dann die Befehlszeile:
ssh heinz@server chmod g-w,o-w /home/heinz
QUELLE: Mathias Kettner, SSH login without password, http://www.linuxproblem.org/art_9.html, visited 2007-10-06.
SSH Anmeldung auf ein Debian System von anderen Betriebssystemen aus
PuTTY ist eine Terminalemulationsanwendung, welche als SSH-Klient arbeitet. Es ist sehr weit unter Windows Anwendern verbreitet.
Wikipedia führt eine englischsprachige Vergleichsliste unter Comparison_of_SSH_clients für bekannte SSH Anwendungen.
SSH und Sicherheit
SSH Server
Mit dem Debian Paket fail2ban, welches ein Monitor- und Log-Programm ist, können automatisch IP-Adressen gesperrt werden, wenn sie eine voreingestellte Anzahl von erfolglosen Anmeldeversuchen erreicht haben. Hiermit ist der Schutz gegen Brute Force Angriffe gegen einen SSH-Server umsetzbar.
- Verwendung von SSH Schüsseln statt Passwörtern.
SSH Client
http://lackof.org/taggart/hacking/ssh/ - Gute Praktiken bei der Nutzung von SSH.
CategoryNetwork CategorySoftware CategorySystemAdministration CategorySystemSecurity