Home / LinuxUser / 2008 / 03 / Aber sicher!

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(243 Punkte bei 15 Stimmen)
Re: War doch klar...
(179 Punkte bei 5 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Kubuntu verliert Finanzierung
(130 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Aber sicher!

SSH, SCP und SFTP

01.03.2008 Sicheres Arbeiten auf entfernten Rechnern und verschlüsselte Datenübertragung – das alles und noch viel mehr bietet SSH.

Die Abkürzung SSH steht für "Secure Shell" und bezeichnet sowohl das Protokoll als auch das Programm selbst. Auf vielen Plattformen, darunter auch Linux, bietet die vom OpenBSD-Projekt entwickelte Programmsammlung OpenSSH [1] alles, was Sie für die verschlüsselten Verbindungen benötigen: Kommandozeilentools zum Arbeiten auf entfernten Rechnern, die Möglichkeit, Programme remote auszuführen (auch grafisch, mittels X11-Weiterleitung), andere Internetdienste über SSH zu "tunneln" (und damit gegen Lauschangriffe abzusichern), Tools zum sicheren Kopieren von Daten und vieles mehr. Die Tabelle "OpenSSH-Suite" zeigt eine Übersicht der wichtigen Anwendungen.

Die Installation gestaltet sich unproblematisch, denn OpenSSH zählt zu den festen Bestandteilen jeder aktueller Linux-Distribution. Die meisten Systeme bieten für den Client und den Server zwei verschiedene Pakete an. Während der Client meistens vorinstalliert ist, müssen Sie den Server oft nachträglich einrichten, falls Sie von anderen Rechnern aus auf Ihren Linux-Computer per SSH zugreifen möchten. Eine Suche im Paketmanager nach openssh hilft in der Regel weiter.

Das grundlegende Arbeiten mit ssh und scp sowie das Erstellen von SSH-Schlüsseln und erste Schritte mit dem SSH-Agenten zeigt ein älterer Artikel [2]. Diese Folge geht einen Schritt weiter und verrät, was es mit Hostkeys auf sich hat und wie Sie den Fingerabdruck dieser Schlüssel prüfen, wie Sie private Schlüssel mit dem SSH-Agent (auch zeitlich begrenzt) verwalten, wie Sie mit dem eingebauten SOCKS-Proxy SSH-Verbindungen tunneln und wie Sie mit Secure FTP interaktiv Daten übertragen.

OpenSSH-Suite

Programm

Funktion

ssh Der Kommandozeilenclient ssh baut verschlüsselte Verbindungen zu entfernten Rechnern auf und führt auf Wunsch auch direkt Befehle aus.
scp Mit scp ("secure copy") kopieren Sie Dateien (nicht-interaktiv) lokal, zu oder von entfernten Rechnern.
sftp Der FTP-Client ("secure FTP") ermöglicht interaktive Kopieraktionen: Wie bei anderen Kommandozeilen-FTP-Clients stehen neben Kopierfunktionen zahlreiche weitere Möglichkeiten zur Verfügung, wie Verzeichniswechsel und -listings, Änderung von Zugriffsrechten, Löschen von Verzeichnissen oder Dateien und vieles mehr.
sshd Der SSH-Server sshd ist als Daemon implementiert und lauscht standardmäßig auf Port 22. Die SSH-Clients bauen Verbindungen mit dem sshd auf.
ssh-keygen Das Tool erstellt und konvertiert SSH-Schlüssel.
ssh-keysign Hilfsprogramm, das bei der Host-basierten Authentifizierung zum Einsatz kommt.
ssh-keyscan Mit dieser Anwendung zeigen Sie öffentliche Hostkeys an und hängen sie an die Datei ~/.ssh/known_hosts an.
ssh-agent Der SSH-Agent verwaltet private SSH-Schlüssel und vereinfacht den Umgang mit Passwörtern.
ssh-add Das Tool macht den ssh-agent mit neuen Schlüsseln bekannt.

Ein Schlüsselerlebnis: Der Hostkey

Beim Erstkontakt verrät die Gegenseite den Fingerabdruck ihres öffentlichen Hostkeys (Abbildung 1). Die Warnung, dass die Authentizität des Rechners nicht gesichert sei, müssen Sie explizit durch Eingabe von yes bestätigen. Erst danach geht's weiter, und die Gegenstelle fordert das Passwort an.

Abbildung 1: Kontaktaufnahme: Der entfernte Rechner identifiziert sich mit seinem Hostkey bei der ersten Anmeldung.

Die Hostkeys des fremden Systems landen in der Datei ~/.ssh/known_hosts. Sobald Sie sich erneut auf dem Rechner einloggen, prüft SSH, ob der Schlüssel noch stimmt, und verweigert die Zusammenarbeit, wenn das nicht der Fall ist: WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!. In einem solchen Fall kann es sich um böswillige Absicht und einen so genannten Man-in-the-middle-Angriff handeln; ein nicht mehr passender Hostkey hat aber oft ganz harmlose Gründe: Der Administrator hat den Schlüssel geändert oder das System neu installiert. Sind Sie sich sicher, dass das der Fall ist, greifen Sie zum Texteditor, öffnen die Datei ~/.ssh/known_hosts und löschen den entsprechenden Eintrag.

Im Verzeichnis /etc/ssh finden Sie sowohl den privaten als auch den öffentlichen Hostkey. Hat ein Administrator den Fingerabdruck des öffentlichen Schlüssels (/etc/ssh/ssh_host_rsa_key.pub) vorher bekannt gemacht, können Sie ihn beim Erstkontakt vor dem Akzeptieren überprüfen. Bei der Bestimmung des Fingerabdrucks hilft das Tool ssh-keygen. Mit der Option -l zeigen Sie den Fingerabdruck eines öffentlichen Schlüssels an, den Sie auf Anforderung angeben. Möchte der Administrator des Rechners macnugget, auf dem sich petronella von samesame aus einloggen möchte (Abbildung 1), den Fingerabdruck des Hostkeys herausfinden, geht er so vor, wie in Listing 1.

Listing 1
# ssh-keygen -l
Enter file in which the key is (/root/.ssh/id_rsa): /etc/ssh/ssh_host_rsa_key
2048 a0:0a:aa:3b:d3:08:f1:90:45:4f:48:c9:f6:cb:92:37 /etc/ssh/ssh_host_rsa_key.pub

Agent X is watching you

Der Artikel unter [2] beschreibt ausführlich, wie Sie einen SSH-Schlüssel anlegen und damit unter anderem eine Authentifizierung ohne Passworteingabe ermöglichen. Die gesparte Tipparbeit erkaufen Sie aber unter Umständen teuer: Der lokale, private Schlüssel bleibt ungesichert und öffnet einem Angreifer Tür und Tor, falls er in die falschen Hände gerät. Einen gesunden Mittelweg beschreitet das Programm ssh-agent: Es übernimmt die Verwaltung privater Schlüssel. So müssen Sie das Kennwort nur noch einmal pro Schlüssel zu Beginn einer ssh-agent-Sitzung eingeben.

Der Agent ist vielseitig: Er verrichtet entweder als Daemon im Hintergrund seine Arbeit oder lässt sich gezielt zum Aufruf einzelner Programme verwenden. Als zusätzliches Sicherheitsfeature lässt sich für den ssh-agent in beiden Anwendungsfällen mit der Option -t ein Timer einschalten. Nach dem Ablauf einer so festgelegten Zeitspanne "vergisst" der Agent die gespeicherten Schlüsselkennwörter. Hinter dem Parameter -t geben Sie die Lebensdauer der Passwörter an. ssh-agent versteht die verschiedensten Einheiten: Keine Angabe oder s bedeutet Sekunden, m Minuten, h Stunden, d Tage und w Wochen.

Um den Agenten als unabhängigen Daemon zu starten und ihn so zu konfigurieren, dass er neu hinzugefügte Schlüssel jeweils nach zwei Tagen vergisst, lautet der Aufruf beispielsweise:

$ ssh-agent -t 2d

Die Ausgabe verrät, auf welche Werte Sie die Umgebungsvariablen $SSH_AUTH_SOCK und $SSH_AGENT_PID setzen müssen, damit ssh-agent korrekt arbeitet. Kopieren Sie die Programmausgabe entweder mit der Maus und fügen sie ein, oder lassen Sie die Ausgabe direkt beim Start durch eval auswerten:

$ eval $(ssh-agent -t 2d)

Beim Start verrät das Programm weiterhin direkt seine Prozess-ID, was der nachfolgende ps-Aufruf bestätigt (Abbildung 2). Der Agent quittiert nicht von selbst seinen Dienst – auch nicht, wenn Sie die Shell schließen. Um das Programm zu beenden, rufen Sie in der Shell, in der ssh-agent gestartet wurde, ssh-agent -k auf. Ist das nicht möglich, etwa, weil die aufrufende Shell schon nicht mehr läuft, bleibt als einziger Ausweg das kill-Kommando [3], zum Beispiel:

$ kill 29692

Abbildung 2: ssh-agent benötigt verschiedene Umgebungsvariablen und verrät auch seine PID beim Start.

Um den ssh-agent nicht als Daemon, sondern gezielt mit einer Anwendung (beispielsweise einem Terminalprogramm) zu starten, geben Sie den Namen der ausführbaren Datei im Aufruf mit an:

$ ssh-agent gnome-terminal &

Damit steht der Agent nur für diese Anwendung und die aus ihr heraus gestarteten Programme zur Verfügung. Beenden Sie das Terminal, stellt das auch das Aus für ssh-agent und alle darin enthaltenen Schlüsselinformationen dar.

Achtung: Einige Distributionen, darunter aktuelle Debian-Versionen, starten das Programm ssh-agent zusammen mit der X-Umgebung. Am besten überprüfen Sie dies mit dem in Abbildung 2 gezeigten ps/grep-Aufruf. Lädt der Benutzer in dieser Konfiguration Schlüssel ohne zeitliche Begrenzung in den Agenten (siehe nächster Abschnitt) und vergisst, den Bildschirm zu sperren, wenn er den Rechner kurz verlässt, kann das zu einem potenziellen Sicherheitsrisiko werden. Um dem System dieses Verhalten abzugewöhnen, passen Sie die Datei /etc/X11/Xsession.options an und kommentieren die Zeile

use-ssh-agent

durch ein vorangestelltes Rautezeichen (#) aus.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1153 Hits
Wertung: 64 Punkte (5 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 03/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

Wie kann man beim Einsatz von Compiz die Fenster-Dekoration einstellen?
GoaSkin , 10.02.2012 20:12, 0 Antworten
Hallo, ich nutze Linux Mint mit dem Gnome-Derivat Mate. Da die Distribution Compiz nicht autom...
rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...
Skype für 64-Bit-Prozessor u. Suse 12.1
Klaus Sigerist, 05.02.2012 11:39, 3 Antworten
Hallo Gemeinde! Ich bin nur ein einfacher Nutzer und habe Probleme mit der Installation von Skyp...
8! Anfängerfrage :) Wie finde ich in Ubuntu die Datenträger (Bild, Text)
samuel leusam, 04.02.2012 15:53, 2 Antworten
Ich habe neu Ubuntu. Wenn ich die SD Karte im Laptop einstecke, erkennt er sie und gibt ihr den N...
OpenSuse 12.1-Service Kit 01/12
Christoph-J. Walter, 28.01.2012 08:52, 2 Antworten
Hallo Gemeinde, ich habe 12.1 neu installiert. Alles in Ordnung! Nun möchte ich das Service Kit (...