Ssh: Unterschied zwischen den Versionen
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“ |
|||
(147 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''ssh''' startet | Der Befehl '''ssh''' startet einen [[Secure Shell]]-Client zur Anmeldung an einem SSH-Server | ||
== | == Beschreibung == | ||
[[File:2024-01-19_12-32-54_UTC.jpg|mini]] | |||
* | ; ssh verbindet sich mit dem angegebenen Ziel und meldet sich dort an | ||
* | * Es ist zur Bereitstellung sicherer, verschlüsselter Kommunikation zwischen zwei nicht vertrauenswürdigen Rechnern über ein unsicheres Netzwerk gedacht. | ||
* Der Benutzer muss seine/ihre Identitität auf der fernen Maschine mittels einer von mehreren, nachfolgend beschriebenen Methoden nachweisen. | |||
; X11-Verbindungen | |||
* beliebige TCP-Ports und UNIX-domain -Sockets können auch über den sicheren Kanal weitergeleitet werden. | |||
; Ausführung von Befehlen | |||
* | * Falls ein Befehl angegeben ist, wird er auf dem fernen Rechner statt in einer Anmelde-Shell ausgeführt. | ||
* | * Als Befehl kann eine komplette Befehlszeile angegeben werden oder er kann zusätzliche Argumente haben. | ||
* Falls angegeben, werden die Argumente an den Befehl, durch Leerzeichen getrennt, angehängt, bevor er an den Server zur Ausführung gesandt wird. | |||
* | |||
=== | == Installation == | ||
== Anwendung == | |||
=== X-Umleitung === | |||
siehe '''[[SSH/X-Forwarding]]''' | |||
=== Passwort-Authentifizierung erzwingen === | |||
* Testen der Passwort-Authentifizierung | |||
* Die Authentifizierung mit öffentlichem Schlüssel wird hier abgeschaltet | |||
; ssh | |||
$ ssh '''-o PreferredAuthentications=password -o PubkeyAuthentication=no''' user@host | |||
; scp | |||
$ scp '''-o PreferredAuthentications=password -o PubkeyAuthentication=no''' DATEI user@host:DATEI | |||
ssh | == Aufruf == | ||
$ ssh [OPTIONEN] ZIEL [Befehl] | |||
$ ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B Anbindeschnittstelle] [-b Anbindeadresse] [-c Chiffrespez] [-D [Anbindeadresse:]Port] [-E Protokolldatei] [-e Maskierzeichen] [-F Konfigurationsdatei] [-I PKCS11] [-i Identitätsdatei] [-J Ziel] [-L Adresse] [-l Anmeldename] [-m MAC_Spez] [-O Steuerbefehl] [-o Option] [-p Port] [-Q Abfrageoption] [-R Adresse] [-S Steuerpfad] [-W Rechner:Port] [-w lokaler_Tun[:ferner_Tun]] Ziel [Befehl [Argument …]] | |||
=== Optionen === | |||
{| class="wikitable sortable options" | |||
|- | |||
! Option !! Beschreibung | |||
|- | |||
| -4 || Erzwingt, dass ssh nur IPv4-Adressen verwendet. | |||
|- | |||
| -6 || Erzwingt, dass ssh nur IPv6-Adressen verwendet. | |||
|- | |||
| -A || Aktiviert die Weiterleitung von Verbindungen von Authentifizierungsvermittlern wie ssh-agent(1). | |||
* Dies kann in einer Konfigurationsdatei auch pro-Rechner separat festgelegt werden. | |||
* Vermittlerweiterleitung sollte mit Vorsicht aktiviert werden. | |||
* Benutzer, die auf dem fernen Rechner die Dateiberechtigungen umgehen können (für den UNIX-domain -Socket des Vermittlers), können auf den lokalen Vermittler über die weitergeleitete Verbindung zugreifen. | |||
* Ein Angreifer kann vom Vermittler kein Schlüsselmaterial erlangen, allerdings kann er Aktionen unter den Schlüsseln ausführen, die es ihm ermöglichen, sich unter den im Vermittler geladenen Identitäten zu authentifizieren. | |||
* Eine sichere Alternative könnte die Verwendung eines Sprungrechners sein (siehe -J). | |||
|- | |||
| -a || Deaktiviert die Weiterleitung der Authentifizierungsverbindung des Vermittlers. | |||
|- | |||
| -B Anbindeschnittstelle || Bindet an die Adresse aus Anbindeschnittstelle an, bevor versucht wird, sich mit dem Zielrechner zu verbinden. | |||
* Dies ist nur auf Systemen mit mehr als einer Adresse nützlich. | |||
|- | |||
| -b Anbindeadresse || Verwendet Anbindeadresse auf der lokalen Maschine als Quelladresse der Verbindung. | |||
* Dies ist nur auf Systemen mit mehr als einer Adresse nützlich. | |||
|- | |||
| -C || Fordert die Komprimierung sämtlicher Daten (einschließlich Stdin, Stdout, Stderr und über X11, TCP und UNIX-domain -Verbindungen weitergeleitete Daten). | |||
* Der Kompressionsalgorithmus ist der gleiche, den auch gzip(1) nutzt. | |||
* Die Komprimierung eignet sich für Modemleitungen und andere langsame Anbindungen, wird die Verbindung aber in schnellen Netzwerken nur ausbremsen. | |||
* Der Vorgabewert kann für jeden Rechner separat in den Konfigurationsdateien eingestellt werden; siehe die Option Compression. | |||
|- | |||
| -c Chiffrespez || Wählt die Chiffrespezifikation für die Kryptografie der Verbindung aus. | |||
* Chiffrespez ist eine durch Kommata getrennte Liste von Chiffren, in der Reihenfolge der Bevorzugung. | |||
* Siehe das Schlüsselwort Ciphers in ssh_config(5) für weitere Informationen. | |||
|- | |||
| -D [Anbindeadresse:]Port || Legt eine lokale, “dynamische”, anwendungsbezogene Port-Weiterleitung fest. | |||
* Dazu wird ein Socket bereitgestellt, der auf Port auf der lokalen Seite auf Anfragen wartet und optional an die angegebene Anbindeadresse angebunden wird. | |||
* Immer wenn eine Verbindung zu diesem Port aufgebaut wird, wird diese Verbindung über den sicheren Kanal weitergeleitet und das Anwendungsprotokoll wird dann verwandt, um zu bestimmen, wohin auf der fernen Maschine verbunden werden soll. | |||
* Derzeit werden die SOCKS4- und SOCKS5-Protokolle unterstützt und ssh wird als SOCKS-Server auftreten. | |||
* Nur root kann privilegierte Ports weiterleiten. | |||
* Dynamische Portweiterleitungen können auch in der Konfigurationsdatei festgelegt werden. | |||
* für den | IPv6-Adressen können durch Angabe der Adresse in eckigen Klammern festgelegt werden. | ||
* Nur der Systemadministrator kann privilegierte Ports weiterleiten. | |||
* Standardmäßig ist der lokale Port gemäß der Einstellung GatewayPorts angebunden. | |||
* Allerdings kann eine explizite Anbindeadresse verwandt werden, um die Verbindung an die bestimmte Adresse anzubinden. | |||
* Die Anbindeadresse “localhost” zeigt an, dass dieser Port, auf dem auf Anfragen gewartet werden soll, nur für die lokale Benutzung angebunden ist, während eine leere Adresse oder »*« anzeigt, dass der Port an allen Schnittstellen verfügbar sein soll. | |||
|- | |||
| -E Protokolldatei || Hängt Fehlersuchprotokolle an Protokolldatei statt an die Standardfehlerausgabe an. | |||
|- | |||
| -e Maskierzeichen || Setzt das Maskierzeichen für die Sitzung mit einem PTY (Vorgabe: ‘~’). | |||
* Das Maskierzeichen wird nur am Anfang einer Zeile erkannt. | |||
* Das Maskierzeichen, gefolgt von einem Punkt (‘.’), schließt die Verbindung; gefolgt von einem Strg-Z, suspendiert es die Verbindung und gefolgt von sich selbst, sendet es einmalig das Maskierzeichen. | |||
* Durch Setzen des Zeichens auf “none” wird Maskierung deaktiviert und die Sitzung vollkommen transparent. | |||
|- | |||
| -F Konfigurationsdatei || Legt eine alternative, benutzerbezogene Konfigurationsdatei fest. | |||
* Falls eine Konfigurationsdatei auf der Befehlszeile angegeben ist, wird die systemweite Konfigurationsdatei (/etc/ssh/ssh_config) ignoriert. | |||
* Die Vorgabe für die benutzerbezogene Konfigurationsdatei ist ~/.ssh/config. | |||
* Wird sie auf “none” gesetzt, dann wird keine Konfigurationsdatei eingelesen. | |||
|- | |||
| -f || Fordert ssh auf, sich vor der Befehlsausführung in den Hintergrund zu schieben. | |||
* Dies ist nützlich, falls ssh nach Passwörtern oder Passphrasen fragen wird, der Benutzer es aber im Hintergrund ausgeführt haben möchte. | |||
* Dies impliziert -n. | |||
* Die empfohlene Art, X11-Programme auf einem fernen Rechner zu starten, ist etwas der Art nach ssh -f host xterm. | |||
* Falls die Konfigurationsoption ExitOnForwardFailure auf “yes” gesetzt ist, dann wird ein Client, der mit -f gestartet wurde, darauf warten, dass alle fernen Port-Weiterleitungen erfolgreich etabliert wurden, bevor er sich in den Hintergrund schiebt. | |||
* Schauen Sie in die Beschreibung von ForkAfterAuthentication in ssh_config(5) für Details. | |||
|- | |||
| -G || Führt dazu, dass ssh nach der Auswertung der Blöcke Host und Match seine Konfiguration anzeigt und sich beendet. | |||
|- | |||
| -g || Erlaubt es fernen Rechnern, sich mit lokal weitergeleiteten Ports zu verbinden. | |||
* Wird dies auf einer multiplexten Verbindung verwandt, dann muss | |||
diese Option beim Master-Prozess eingesetzt werden. | |||
|- | |||
| -I PKCS11 || Gibt die dynamische PKCS#11-Bibliothek an, die ssh für die Kommunikation mit einem PKCS#11-Token verwenden soll, der Schlüssel für die Benutzerauthentifizierung bereitstellt. | |||
|- | |||
| -i Identitätsdatei || Wählt eine Datei, aus der die Identität (der private Schlüssel) für asymmetrische Authentifizierung gelesen wird. | |||
* Sie können auch festlegen, dass eine öffentliche Schlüsseldatei den entsprechenden privaten Schlüssel verwendet, der in ssh-agent(1) geladen wird, wenn die private Schlüsseldatei nicht lokal verfügbar ist. | |||
* Die Vorgabe ist ~/.ssh/id_rsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ecdsa_sk, ~/.ssh/id_ed25519, ~/.ssh/id_ed25519_sk und ~/.ssh/id_dsa. | |||
* Identitätsdateien können auch auf einer rechnerbezogenen Basis in der Konfigurationsdatei festgelegt werden. | |||
* Es ist auch möglich, mehrere Optionen -i (und mehrere in Konfigurationsdateien festgelegte Identitäten) einzusetzen. | |||
* Falls keine Zertifikate explizit durch die Direktive CertificateFile angegeben sind, wird ssh versuchen, die Zertifikatsinformationen aus dem Dateinamen zu laden, der durch Anhängen von -cert.pub an die Identitätsdateinamen ermittelt wird. | |||
|- | |||
| -J Ziel || Verbindet sich zum Zielrechner, indem ssh zuerst eine Verbindung zu dem in Ziel angegebenen Sprungrechner aufbaut und dann dort eine TCP-Weiterleitung zum endgültigen Ziel etabliert. | |||
* Mehrere Sprungrechner können durch Kommata getrennt angegeben werden. | |||
* Dies ist eine Abkürzung für die Verwendung der Konfigurationsdirektive ProxyJump. | |||
* Beachten Sie, dass auf der Befehlszeile übergebene Konfigurationsdirektiven sich im Allgemeinen auf den Zielrechner und nicht den angegebenen Sprungrechner beziehen. | |||
* Verwenden Sie ~/.ssh/config, um Konfiguration für den Sprungrechner anzugeben. | |||
|- | |||
| -K || Aktiviert GSSAPI-basierte Authentifizierung und Weiterleitung (Delegierung) von GSSAPI-Anmeldedaten an den Server. | |||
|- | |||
| -k || Deaktiviert Weiterleitung (Delegierung) von GSSAPI-Anmeldedaten an den Server. | |||
|- | |||
| -L [Anbindeadresse:]Port:Rechner:Rechnerport | |||
-L [Anbindeadresse:]Port:fernes_Socket, | |||
-L lokales_Socket:Rechner:Rechnerport | |||
-L lokales_Socket:Rechner | |||
* ( | | Gibt an, dass Verbindungen zu dem angegebenen TCP-Port oder Unix-Socket auf dem lokalen (Client-)Rechner an den angegeben Rechner und Port oder Unix-Socket auf der fernen Seite weitergeleitet werden soll. | ||
* Das | * Dies funktioniert durch Zuweisung eines Ports, der entweder auf einen TCP- Port auf der lokalen Seite, optional an die angegebene Anbindeadresse angebunden, oder auf einem Unix-Socket auf Anfragen wartet. | ||
* Immer wenn eine Verbindung zu dem lokalen Port oder Socket erfolgt, wird die Verbindung über den sicheren Kanal weitergeleitet und es erfolgt entweder eine Verbindung zu dem Port des Rechners Rechnerport oder zum dem Unix-Socket fernes_Socket auf der fernen Maschine. | |||
Port-Weiterleitung kann auch in der gesamten Konfigurationsdatei festgelegt werden. | |||
* Nur der Systemadministrator kann privilegierte Ports weiterleiten. | |||
* Durch Einschließen der Adresse in eckige Klammern können IPv6-Adressen angegeben werden. | |||
Standardmäßig ist der lokale Port gemäß der Einstellung GatewayPorts angebunden. | |||
* Allerdings kann eine explizite Anbindeadresse verwandt werden, um die Verbindung an eine bestimmte Adresse anzubinden. | |||
* Wird “localhost” als Anbindeadresse verwandt, zeigt dies an, dass der Port, an dem auf Anfragen gewartet wird, nur lokal eingesetzt werden soll, während eine leere Adresse oder »*« anzeigt, dass der Port von allen Schnittstellen aus verfügbar sein soll. | |||
|- | |||
| -l Anmeldename ||Gibt den Benutzernamen an, unter dem die Anmeldung in der fernen Maschine erfolgen soll. | |||
* Dies kann auch rechnerbezogen in der Konfigurationsdatei festgelegt werden. | |||
|- | |||
| -M || Bringt den ssh -Client in den “master” -Modus für die gemeinsame Benutzung von Verbindungen. | |||
* Durch mehrere Optionen -M wird ssh in den “master” -Modus gebracht, es wird aber eine Bestätigung mit ssh-askpass(1) vor jeder Aktion verlangt, die den Multiplexing-Zustand ändert (z. B. Öffnen einer neuen Sitzung). | |||
* Lesen Sie die Beschreibung von ControlMaster in ssh_config(5) für Details. | |||
|- | |||
| -m MAC_Spez || Eine Kommata-getrennte Liste von MAC- (Nachrichtenauthentifizierungscodes-)Algorithmen, in der Reihenfolge der Präferenz angegeben. | |||
* Siehe das Schlüsselwort MAC für weitere Informationen. | |||
|- | |||
| -N || Führt keinen Befehl in der Ferne aus. | |||
* Dies ist nützlich, wenn nur Ports weitergeleitet werden. | |||
* Schauen Sie in die Beschreibung von SessionType in ssh_config(5) für Details. | |||
|- | |||
| -n || Leitet Stdin nach /dev/null um (tätsächlich wird des Lesen von Stdin verhindert). | |||
* Dies muss verwandt werden, wenn ssh im Hintergrund ausgeführt wird. | |||
* Ein häufiger Trick ist, dies beim Einsatz von X11-Programmen auf einer fernen Maschine zu verwenden. | |||
* Beispielsweise wird ssh -n shadows.cs.hut.fi emacs & einen Emacs auf shadows.cs.hut.fi starten und die X11-Verbindung wird automatisch über einen verschlüsselten Kanal weitergeleitet. | |||
* Das Programm ssh wird in den Hintergrund geschoben. (Dies funktioniert nicht, falls ssh nach einem Passwort oder einer Passphrase fragen muss, siehe auch die Option -f.) Schauen Sie in die Beschreibung von StdinNull in ssh_config(5) für Details. | |||
|- | |||
| -O Steuerbefehl || Steuert einen aktiven Master-Prozess für Verbindungs-Multiplexing. | |||
* Wird die Option -O angegeben, dann wird das Argument Steuerbefehl interpretiert und an den Master-Prozess übergeben. | |||
* Gültige Befehle sind: “check” (prüfen, ob der Master-Prozess läuft), “forward” (Weiterleitungen ohne Befehlsausführung erbitten), “cancel” (Weiterleitungen abbrechen), “exit” (den Master zum Beenden auffordern) und “stop” (den Master bitten, keine weiteren Multiplexing-Anforderungen zu akzeptieren). | |||
|- | |||
| -o Option || Kann zur Angabe von Optionen, die wie in der Konfigurationsdatei formatiert sind, verwandt werden. | |||
* Dies ist nützlich, um Optionen anzugeben, für die es keinen separaten Befehlszeilenschalter gibt. | |||
* Für vollständige Details siehe ssh_config(5). | |||
|- | |||
| -p Port || Port, zu dem beim fernen Rechner verbunden werden soll. | |||
* Dies kann rechnerbasiert in der Konfigurationsdatei festgelegt werden. | |||
|- | |||
| -Q Abfrageoption || Erfragt die Algorithmen, die von einem der folgenden Funktionalitäten unterstützt werden: cipher (unterstützte symmetrische Chiffren), cipher-auth (unterstützte symmetrische Chiffren, die authentifizierte Kryptografie unterstützen), help (die für den Einsatz mit dem Schalter -Q unterstützten Abfrageausdrücke), mac (unterstützte Nachrichtenintegritätscodes), kex (Schlüssel-Austauschalgorithmen), kex-gss (GSSAPI-Schlüssel-Austauschalgorithmen), key (Schlüsseltypen), key-cert (Zertifikatsschlüsseltypen), key-plain (nicht-Zertifikatsschlüsseltypen), key-sig (alle Schlüsseltypen und Signaturalgorithmen), Protokollversion (unterstützte SSH-Protokollversionen) und sig (unterstützte Signaturalgorithmen). | |||
* Alternativ kann jedes Schlüsselwort aus ssh_config(5) und sshd_config(5), das eine Algorithmenliste akzeptiert, als ein Alias für die entsprechende Abfrageoption verwandt werden. | |||
|- | |||
| -q || Stiller Modus. | |||
* Damit werden die meisten Warnungen und Diagnosemeldungen unterdrückt. | |||
|- | |||
| -R [Anbindeadresse:]Port:Rechner:Rechnerport | |||
-R [Anbindeadresse:]Port:lokales_Socket | |||
-R fernes_Socket:Rechner:Rechnerport | |||
-R fernes_Socket:lokales_Socket | |||
-R [Anbindeadresse:]Port | |||
* Die andere | | Gibt an, dass Verbindungen zum dem angegebenen TCP-Port oder Unix-Socket auf dem fernen Rechner (Server) an die lokale Seite weitergeleitet werden sollen. | ||
* | Dazu wird auf der fernen Seite ein Socket bereitgestellt, das entweder auf einem TCP- Port oder einem Unix-Socket auf Anfragen wartet. | ||
* | * Immer wenn eine Verbindung zu diesem Port oder Unix-Socket aufgebaut wird, wird sie über den sicheren Kanal weitergeleitet und eine weitere Verbindung erstellt, die zu einem expliziten Ziel führt (angegeben durch den Port Rechnerport auf dem Rechner oder lokales_Socket). | ||
* Falls kein Ziel genannt wurde, arbeitet ssh als SOCKS4/5-Proxy und leitet die Verbindungen zu den Zielen weiter, die vom entfernten SOCKS-Client erbeten werden. | |||
Port-Weiterleitungen können auch in der Konfigurationsdatei festgelegt werden. | |||
* Privilegierte Ports können nur nach Anmeldung als root auf der fernen Maschine weitergeleitet werden. | |||
* Durch Einschluss der Adresse in eckige Klammern können IPv6-Adressen angegeben werden. | |||
Standardmäßig werden TCP-Ports auf dem Server, an denen auf Anfragen gewartet wird, nur an die Loopback-Schnittstelle gebunden. | |||
* Dies kann durch Angabe einer Anbindeadresse außer Kraft gesetzt werden. | |||
* Eine leere Anbindeadresse oder die Adresse ‘*’ zeigt an, dass das ferne Socket auf allen Schnittstellen auf Anfragen warten soll. | |||
* Die Angabe einer fernen Anbindeadresse wird nur erfolgreich sein, falls die Option GatewayPorts des Servers aktiviert ist (siehe sshd_config(5)). | |||
Falls das Argument Port ‘0’ ist, dann wird der Port, an dem auf Anfragen gewartet wird, dynamisch auf dem Server zugewiesen und zur Laufzeit dem Client mitgeteilt. | |||
* Wird dies zusammen mit -O forward eingesetzt, dann wird der zugewiesene Port auf die Standardausgabe geschrieben. | |||
|- | |||
| -S Steuerpfad || Gibt den Ort eines Steuer-Sockets für die gemeinsame Verwendung von Verbindungen oder die Zeichenkette “none” an, um die gemeinsame Verwendung von Verbindungen zu deaktivieren. | |||
* Lesen Sie die Beschreibung von ControlPath und ControlMaster in ssh_config(5) für Details. | |||
|- | |||
| -s || Kann dazu verwandt werden, um das Starten eines Subsystems auf dem fernen System zu erbitten. | |||
* Subsysteme ermöglichen die Verwendung von SSH als | |||
sicheren Transport für andere Anwendungen (z. B. | |||
* sftp(1)). | |||
* Das Subsystem wird als der ferne Befehl angegeben. | |||
* Schauen Sie in die Beschreibung von SessionType in ssh_config(5) für Details. | |||
|- | |||
| -T || Deaktiviert Pseudo-Terminal-Zuweisung. | |||
|- | |||
| -t || Erzwingt Pseudo-Terminal-Zuweisung. | |||
* Dies kann zur Ausführung mehrerer, auf Screen-basierter Programme auf fernen Maschinen verwandt werden. | |||
Dies kann zur Implementierung von beispielsweise Menü-Diensten sehr nützlich sein. | |||
* Mehrere Optionen -t erzwingen die TTY-Zuweisung, selbst wenn ssh kein lokales TTY hat. | |||
|- | |||
| -V || Zeigt die Versionnummer an und beendet sich. | |||
|- | |||
| -v || Ausführlicher Modus. | |||
* Führt dazu, dass ssh Fehlersuchmeldungen über seinen Fortschritt ausgibt. | |||
* Dies ist für die Fehlersuche bei Verbindungs-, Authentifizierungs- und Konfigurationsproblemen hilfreich. | |||
* Mehrere Optionen -v erhöhen die Ausführlichkeit. | |||
* Das Maximum ist 3. | |||
|- | |||
| -W Rechner:Port || Fordert, dass die Standardein- und -ausgabe auf dem Client an Rechner auf Port über den sicheren Kanal weitergeleitet wird. | |||
* Impliziert -N, -T, ExitOnForwardFailure und ClearAllForwardings, allerdings können diese in der Konfigurationsdatei oder mittels der Befehlszeilenoptionen -o außer Kraft gesetzt werden. | |||
|- | |||
| -w lokaler_Tun[:ferner_Tun] || Fordert Tunnelgerät-Weiterleitung mit den angegebenen tun(4) -Geräten zwischen dem Client (lokaler_Tun) und dem Server (ferner_Tun). | |||
Die Geräte können über numerische Kennungen oder das Schlüsselwort “any”, das das nächste verfügbare Tunnelgerät verwendet, angegeben werden. | |||
Falls ferner_Tun nicht angegeben ist, ist die Vorgabe “any”. | |||
* Siehe auch die Direktiven Tunnel und TunnelDevice in ssh_config(5). | |||
Falls die Direktive Tunnel nicht gesetzt ist, wird sie auf den Standard-Tunnel-Modus ( “point-to-point”) gesetzt. | |||
* Falls ein anderer Tunnel-Weiterleitungsmodus gewünscht ist, kann er vor -w angegeben werden. | |||
|- | |||
| -X || Aktiviert X11-Weiterleitung. | |||
* Dies kann auch rechnerbezogen in der Konfigurationsdatei festgelegt werden. | |||
X11-Weiterleitung sollte mit Vorsicht aktiviert werden. | |||
* Benutzer, die auf dem fernen Rechner die Dateiberechtigungen umgehen können (für die X-Autorisierungs-Datenbank), können durch die weitergeleitete Verbindung auf das lokale X11-Display zugreifen. | |||
* Ein Angreifer könnte dann in der Lage sein, Aktivitäten wie die Überwachung der Eingabe durchzuführen. | |||
Aus diesem Grund unterliegt X11-Weiterleitung standardmäßig den X11-SECURITY-Erweiterungen. | |||
* Lesen Sie für weitere Informationen die Beschreibung der Option ssh -Y und der Direktive ForwardX11Trusted in ssh_config(5). | |||
(Debian-spezifisch: X11-Weiterleitung unterliegt derzeit standardmäßig nicht den Einschränkungen der X11-SECURITY-Erweiterungen, da derzeit zu viele Programme in diesem Modus abstürzen. | |||
* Setzen Sie die Option ForwardX11Trusted auf “no”, um das von den Originalautoren beabsichtigte Verhalten wiederherzustellen. | |||
* Dies kann sich abhängig von den Verbesserungen bei den Clients in der Zukunft ändern.) | |||
|- | |||
| -x || Deaktiviert X11-Weiterleitung. | |||
|- | |||
| -Y || Aktiviert vertrauenswürdige X11-Weiterleitung. | |||
* Vertrauenswürdige X11-Weiterleitungen unterliegen nicht den Maßnahmen der X11-SECURITY-Erweiterungen. (Debian-spezifisch: In der Standardkonfiguration ist diese Option zu -X äquivalent, da wie oben beschrieben ForwardX11Trusted standardmäßig “yes” ist. | |||
* Setzen Sie die Option ForwardX11Trusted auf “no”, um das von den Originalautoren beabsichtigte Verhalten wiederherzustellen. | |||
* Dies kann sich abhängig von den Verbesserungen bei den Clients in der Zukunft ändern.) | |||
|- | |||
| -y || Sendet mittels des Systemmoduls syslog(3) Protokollinformationen. | |||
* Standardmäßig werden diese Informationen auf die Stderr gesandt. | |||
* ssh kann zusätzliche Konfigurationsdaten aus einer benutzerbezogenen Konfigurationsdatei und der systemweiten Konfigurationsdatei erhalten. | |||
* Das Dateiformat und die Konfigurationsoptionen sind in ssh_config(5) beschrieben. | |||
|} | |||
=== | === Parameter === | ||
; Ziel | |||
* [Benutzer@]Rechnername | |||
* | * ssh://[Benutzer@]Rechnername[:Port] | ||
* | |||
=== | === Umgebung === | ||
=== Rückgabewert === | |||
=== | == Konfiguration == | ||
=== Dateien === | |||
== Sicherheit == | |||
== Dokumentation == | |||
=== RFC === | |||
=== Man-Page === | |||
=== Info-Pages === | |||
== Siehe auch == | |||
== Links == | |||
=== Projekt-Homepage === | |||
=== Weblinks === | |||
[[Kategorie:SSH]] | |||
[[Kategorie:Linux/Befehl]] | |||
{{DISPLAYTITLE:ssh}} | |||
[[ | {{DEFAULTSORT:ssh}} | ||
[[Kategorie:Netzwerk/Befehl]] |
Aktuelle Version vom 12. November 2024, 19:39 Uhr
Der Befehl ssh startet einen Secure Shell-Client zur Anmeldung an einem SSH-Server
Beschreibung
- ssh verbindet sich mit dem angegebenen Ziel und meldet sich dort an
- Es ist zur Bereitstellung sicherer, verschlüsselter Kommunikation zwischen zwei nicht vertrauenswürdigen Rechnern über ein unsicheres Netzwerk gedacht.
- Der Benutzer muss seine/ihre Identitität auf der fernen Maschine mittels einer von mehreren, nachfolgend beschriebenen Methoden nachweisen.
- X11-Verbindungen
- beliebige TCP-Ports und UNIX-domain -Sockets können auch über den sicheren Kanal weitergeleitet werden.
- Ausführung von Befehlen
- Falls ein Befehl angegeben ist, wird er auf dem fernen Rechner statt in einer Anmelde-Shell ausgeführt.
- Als Befehl kann eine komplette Befehlszeile angegeben werden oder er kann zusätzliche Argumente haben.
- Falls angegeben, werden die Argumente an den Befehl, durch Leerzeichen getrennt, angehängt, bevor er an den Server zur Ausführung gesandt wird.
Installation
Anwendung
X-Umleitung
siehe SSH/X-Forwarding
Passwort-Authentifizierung erzwingen
- Testen der Passwort-Authentifizierung
- Die Authentifizierung mit öffentlichem Schlüssel wird hier abgeschaltet
- ssh
$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no user@host
- scp
$ scp -o PreferredAuthentications=password -o PubkeyAuthentication=no DATEI user@host:DATEI
Aufruf
$ ssh [OPTIONEN] ZIEL [Befehl]
$ ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B Anbindeschnittstelle] [-b Anbindeadresse] [-c Chiffrespez] [-D [Anbindeadresse:]Port] [-E Protokolldatei] [-e Maskierzeichen] [-F Konfigurationsdatei] [-I PKCS11] [-i Identitätsdatei] [-J Ziel] [-L Adresse] [-l Anmeldename] [-m MAC_Spez] [-O Steuerbefehl] [-o Option] [-p Port] [-Q Abfrageoption] [-R Adresse] [-S Steuerpfad] [-W Rechner:Port] [-w lokaler_Tun[:ferner_Tun]] Ziel [Befehl [Argument …]]
Optionen
Option | Beschreibung |
---|---|
-4 | Erzwingt, dass ssh nur IPv4-Adressen verwendet. |
-6 | Erzwingt, dass ssh nur IPv6-Adressen verwendet. |
-A | Aktiviert die Weiterleitung von Verbindungen von Authentifizierungsvermittlern wie ssh-agent(1).
|
-a | Deaktiviert die Weiterleitung der Authentifizierungsverbindung des Vermittlers. |
-B Anbindeschnittstelle | Bindet an die Adresse aus Anbindeschnittstelle an, bevor versucht wird, sich mit dem Zielrechner zu verbinden.
|
-b Anbindeadresse | Verwendet Anbindeadresse auf der lokalen Maschine als Quelladresse der Verbindung.
|
-C | Fordert die Komprimierung sämtlicher Daten (einschließlich Stdin, Stdout, Stderr und über X11, TCP und UNIX-domain -Verbindungen weitergeleitete Daten).
|
-c Chiffrespez | Wählt die Chiffrespezifikation für die Kryptografie der Verbindung aus.
|
-D [Anbindeadresse:]Port | Legt eine lokale, “dynamische”, anwendungsbezogene Port-Weiterleitung fest.
IPv6-Adressen können durch Angabe der Adresse in eckigen Klammern festgelegt werden.
|
-E Protokolldatei | Hängt Fehlersuchprotokolle an Protokolldatei statt an die Standardfehlerausgabe an. |
-e Maskierzeichen | Setzt das Maskierzeichen für die Sitzung mit einem PTY (Vorgabe: ‘~’).
|
-F Konfigurationsdatei | Legt eine alternative, benutzerbezogene Konfigurationsdatei fest.
|
-f | Fordert ssh auf, sich vor der Befehlsausführung in den Hintergrund zu schieben.
|
-G | Führt dazu, dass ssh nach der Auswertung der Blöcke Host und Match seine Konfiguration anzeigt und sich beendet. |
-g | Erlaubt es fernen Rechnern, sich mit lokal weitergeleiteten Ports zu verbinden.
diese Option beim Master-Prozess eingesetzt werden. |
-I PKCS11 | Gibt die dynamische PKCS#11-Bibliothek an, die ssh für die Kommunikation mit einem PKCS#11-Token verwenden soll, der Schlüssel für die Benutzerauthentifizierung bereitstellt. |
-i Identitätsdatei | Wählt eine Datei, aus der die Identität (der private Schlüssel) für asymmetrische Authentifizierung gelesen wird.
|
-J Ziel | Verbindet sich zum Zielrechner, indem ssh zuerst eine Verbindung zu dem in Ziel angegebenen Sprungrechner aufbaut und dann dort eine TCP-Weiterleitung zum endgültigen Ziel etabliert.
|
-K | Aktiviert GSSAPI-basierte Authentifizierung und Weiterleitung (Delegierung) von GSSAPI-Anmeldedaten an den Server. |
-k | Deaktiviert Weiterleitung (Delegierung) von GSSAPI-Anmeldedaten an den Server. |
-L [Anbindeadresse:]Port:Rechner:Rechnerport
-L [Anbindeadresse:]Port:fernes_Socket, -L lokales_Socket:Rechner:Rechnerport -L lokales_Socket:Rechner |
Gibt an, dass Verbindungen zu dem angegebenen TCP-Port oder Unix-Socket auf dem lokalen (Client-)Rechner an den angegeben Rechner und Port oder Unix-Socket auf der fernen Seite weitergeleitet werden soll.
Port-Weiterleitung kann auch in der gesamten Konfigurationsdatei festgelegt werden.
Standardmäßig ist der lokale Port gemäß der Einstellung GatewayPorts angebunden.
|
-l Anmeldename | Gibt den Benutzernamen an, unter dem die Anmeldung in der fernen Maschine erfolgen soll.
|
-M | Bringt den ssh -Client in den “master” -Modus für die gemeinsame Benutzung von Verbindungen.
|
-m MAC_Spez | Eine Kommata-getrennte Liste von MAC- (Nachrichtenauthentifizierungscodes-)Algorithmen, in der Reihenfolge der Präferenz angegeben.
|
-N | Führt keinen Befehl in der Ferne aus.
|
-n | Leitet Stdin nach /dev/null um (tätsächlich wird des Lesen von Stdin verhindert).
|
-O Steuerbefehl | Steuert einen aktiven Master-Prozess für Verbindungs-Multiplexing.
|
-o Option | Kann zur Angabe von Optionen, die wie in der Konfigurationsdatei formatiert sind, verwandt werden.
|
-p Port | Port, zu dem beim fernen Rechner verbunden werden soll.
|
-Q Abfrageoption | Erfragt die Algorithmen, die von einem der folgenden Funktionalitäten unterstützt werden: cipher (unterstützte symmetrische Chiffren), cipher-auth (unterstützte symmetrische Chiffren, die authentifizierte Kryptografie unterstützen), help (die für den Einsatz mit dem Schalter -Q unterstützten Abfrageausdrücke), mac (unterstützte Nachrichtenintegritätscodes), kex (Schlüssel-Austauschalgorithmen), kex-gss (GSSAPI-Schlüssel-Austauschalgorithmen), key (Schlüsseltypen), key-cert (Zertifikatsschlüsseltypen), key-plain (nicht-Zertifikatsschlüsseltypen), key-sig (alle Schlüsseltypen und Signaturalgorithmen), Protokollversion (unterstützte SSH-Protokollversionen) und sig (unterstützte Signaturalgorithmen).
|
-q | Stiller Modus.
|
-R [Anbindeadresse:]Port:Rechner:Rechnerport
-R [Anbindeadresse:]Port:lokales_Socket -R fernes_Socket:Rechner:Rechnerport -R fernes_Socket:lokales_Socket -R [Anbindeadresse:]Port |
Gibt an, dass Verbindungen zum dem angegebenen TCP-Port oder Unix-Socket auf dem fernen Rechner (Server) an die lokale Seite weitergeleitet werden sollen.
Dazu wird auf der fernen Seite ein Socket bereitgestellt, das entweder auf einem TCP- Port oder einem Unix-Socket auf Anfragen wartet.
Port-Weiterleitungen können auch in der Konfigurationsdatei festgelegt werden.
Standardmäßig werden TCP-Ports auf dem Server, an denen auf Anfragen gewartet wird, nur an die Loopback-Schnittstelle gebunden.
Falls das Argument Port ‘0’ ist, dann wird der Port, an dem auf Anfragen gewartet wird, dynamisch auf dem Server zugewiesen und zur Laufzeit dem Client mitgeteilt.
|
-S Steuerpfad | Gibt den Ort eines Steuer-Sockets für die gemeinsame Verwendung von Verbindungen oder die Zeichenkette “none” an, um die gemeinsame Verwendung von Verbindungen zu deaktivieren.
|
-s | Kann dazu verwandt werden, um das Starten eines Subsystems auf dem fernen System zu erbitten.
sicheren Transport für andere Anwendungen (z. B.
|
-T | Deaktiviert Pseudo-Terminal-Zuweisung. |
-t | Erzwingt Pseudo-Terminal-Zuweisung.
Dies kann zur Implementierung von beispielsweise Menü-Diensten sehr nützlich sein.
|
-V | Zeigt die Versionnummer an und beendet sich. |
-v | Ausführlicher Modus.
|
-W Rechner:Port | Fordert, dass die Standardein- und -ausgabe auf dem Client an Rechner auf Port über den sicheren Kanal weitergeleitet wird.
|
-w lokaler_Tun[:ferner_Tun] | Fordert Tunnelgerät-Weiterleitung mit den angegebenen tun(4) -Geräten zwischen dem Client (lokaler_Tun) und dem Server (ferner_Tun).
Die Geräte können über numerische Kennungen oder das Schlüsselwort “any”, das das nächste verfügbare Tunnelgerät verwendet, angegeben werden. Falls ferner_Tun nicht angegeben ist, ist die Vorgabe “any”.
Falls die Direktive Tunnel nicht gesetzt ist, wird sie auf den Standard-Tunnel-Modus ( “point-to-point”) gesetzt.
|
-X | Aktiviert X11-Weiterleitung.
X11-Weiterleitung sollte mit Vorsicht aktiviert werden.
Aus diesem Grund unterliegt X11-Weiterleitung standardmäßig den X11-SECURITY-Erweiterungen.
(Debian-spezifisch: X11-Weiterleitung unterliegt derzeit standardmäßig nicht den Einschränkungen der X11-SECURITY-Erweiterungen, da derzeit zu viele Programme in diesem Modus abstürzen.
|
-x | Deaktiviert X11-Weiterleitung. |
-Y | Aktiviert vertrauenswürdige X11-Weiterleitung.
|
-y | Sendet mittels des Systemmoduls syslog(3) Protokollinformationen.
|
Parameter
- Ziel
- [Benutzer@]Rechnername
- ssh://[Benutzer@]Rechnername[:Port]