Ssh: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“
 
(72 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{DISPLAYTITLE:ssh}}
Der Befehl '''ssh''' startet einen [[Secure Shell]]-Client zur Anmeldung an einem SSH-Server
 
'''ssh''' startet eine Secure Shell
'''topic''' kurze Beschreibung


== Beschreibung ==
== Beschreibung ==
== Installation ==
[[File:2024-01-19_12-32-54_UTC.jpg|mini]]
== Syntax ==
; ssh verbindet sich mit dem angegebenen Ziel und meldet sich dort an
=== Parameter ===
* Es ist zur Bereitstellung sicherer, verschlüsselter Kommunikation zwischen zwei nicht vertrauenswürdigen Rechnern über ein unsicheres Netzwerk gedacht.
=== Optionen ===
* Der Benutzer muss seine/ihre Identitität auf der fernen Maschine mittels einer von mehreren, nachfolgend beschriebenen Methoden nachweisen.
=== Umgebungsvariablen ===
=== Exit-Status ===


== Konfiguration ==
; X11-Verbindungen
=== Dateien ===
* beliebige TCP-Ports und UNIX-domain -Sockets können auch über den sicheren Kanal weitergeleitet werden.


== Anwendungen ==
; Ausführung von Befehlen
== Sicherheit ==
* Falls ein Befehl angegeben ist, wird er auf dem fernen Rechner statt in einer Anmelde-Shell ausgeführt.
== Dokumentation ==
* Als Befehl kann eine komplette Befehlszeile angegeben werden oder er kann zusätzliche Argumente haben.
=== RFC ===
* Falls angegeben, werden die Argumente an den Befehl, durch Leerzeichen getrennt, angehängt, bevor er an den Server zur Ausführung gesandt wird.
=== Man-Pages ===
=== Info-Pages ===
=== Siehe auch ===


== Links ==
== Installation ==
=== Projekt-Homepage ===
== Anwendung ==
=== Weblinks ===
=== X-Umleitung ===
=== Einzelnachweise ===
siehe '''[[SSH/X-Forwarding]]'''
<references />


== Testfragen ==
=== Passwort-Authentifizierung erzwingen ===
<div class="toccolours mw-collapsible mw-collapsed">
* Testen der Passwort-Authentifizierung
''Testfrage 1''
* Die Authentifizierung mit öffentlichem Schlüssel wird hier abgeschaltet
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


[[Kategorie:Entwurf]]
; 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]


= TMP =
$ 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 …]]
== Beschreibung ==
SSH baut eine verschlüsselte zu einem entfernten Rechner auf
* Authentifizierung der Gegenstelle, kein Ansprechen falscher Ziele
* Verschlüsselung der Datenübertragung, kein Mithören durch Unbefugte
* Datenintegrität, keine Manipulation der übertragenen Daten
it


== Verbindung über SSH ==
=== Optionen ===
ssh <user>@<ip>
{| 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.


=== Konfiguration des SSH-Servers (sshd) ===
IPv6-Adressen können durch Angabe der Adresse in eckigen Klammern festgelegt werden.
* die Konfiguration des SSH-Servers '''sshd''' findet über die Datei "/etc/ssh/sshd_config" statt, die Voreinstellungen sind durchweg akzeptabel
* Nur der Systemadministrator kann privilegierte Ports weiterleiten.
* es ist jedoch sinnvoll, "PermitRootLogin" auf "no" zu setzen, dann kann sich niemand als "root" einloggen, sondern meldet sich unter seinem Benutzernamen an, dann
* Standardmäßig ist der lokale Port gemäß der Einstellung GatewayPorts angebunden.
su
* Allerdings kann eine explizite Anbindeadresse verwandt werden, um die Verbindung an die bestimmte Adresse anzubinden.
oder:
* 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.
sudo -s
|-
* mit den direktiven "AllowUsers" und "AllowGroups" bzw. "DenyUsers" und "DenyGroups" lässt sich festlegen, welche Benutzer sich anmelden dürfen
| -E Protokolldatei || Hängt Fehlersuchprotokolle an Protokolldatei statt an die Standardfehlerausgabe an.
* dies empfiehlt sich besonders bei Servern
|-
* "AllowGroups admin" verbietet bspw. allen Benutzern, die keine Mitglieder der Gruppe "admin" sind, den Zugriff
| -e Maskierzeichen || Setzt das Maskierzeichen für die Sitzung mit einem PTY (Vorgabe: ‘~’).
* wer sich ausschließlich über das noch sicherere Public-Key-Verfahren anmelden will, der sollte die Benutzung von Passwörtern mit "PasswordAuthentication no" abschalten.
* Das Maskierzeichen wird nur am Anfang einer Zeile erkannt.
* falls lange Wartezeiten bei der Anmeldung am SSH-Server auftreten, könnte das an einer fehlgeschlagenen Namensauflösung liegen
* 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.
* da man SSH über die IP benutzt, können diese DNS-Anfragen in der "sshd_config" deaktiviert werden
* Durch Setzen des Zeichens auf “none” wird Maskierung deaktiviert und die Sitzung vollkommen transparent.
* der dafür nötige Eintrag wäre "UseDNS no".
|-
| -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,


=== Authentifizierung über Public-Keys ===
-L lokales_Socket:Rechner:Rechnerport
* wem die Authentifizierung über Passwörter trotz der Verschlüsselung zu unsicher ist, der benutzt am besten das Public-Key-Verfahren
* hierbei wird asymmetrische Verschlüsselung genutzt, um den Benutzer zu authentifizieren
* mit dem öffentlichen Schlüssel können die Daten verschlüsselt, aber nicht mehr entschlüsselt werden (Einwegfunktion)
* nur noch der Besitzer des privaten Schlüssels, also der richtige Empfänger, kann die Daten entschlüsseln
* dafür muss man mit dem Kommandozeilenprogramm '''ssh-keygen''' ein entsprechendes
* Schlüsselpaar erzeugen:


ssh-keygen -t rsa -b 4096
-L lokales_Socket:Rechner
oder
| 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.
ssh-keygen -t ed25519
* 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.&nbsp;B.&nbsp; Ö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


* der voreingestellte Dateiname "/home/user/.ssh id_rsa" oder "/home/user/.ssh/id_ed25519" kann einfach mit '''⏎''' bestätigt werden
-R fernes_Socket:Rechner:Rechnerport
* keine leere Passphrase benutzen, weil sonst jeder, der evtl. in den Besitz dieser Datei kommt, sofortigen Zugriff auf alle zugehörigen Systeme erhält.
* nun muss noch der öffentliche Schlüssel mit der Endung '''.pub''' "id_rsa.pub" oder "id_ed25519.pub", auf dem Zielsystem deponiert werden
* dazu dient das Programm '''ssh-copy-id'''; zu diesem Zeitpunkt muss die Authentifizierung per Passwort noch erlaubt sein: "PasswordAuthentication yes":
ssh-copy-id -i ~/.ssh/id_rsa.pub <user>@<server>


* anschließend kann man sich ohne Passwort anmelden:
-R fernes_Socket:lokales_Socket
ssh <user>@<server>


* für den Fall, dass der Nutzername vom lokalen und entfernten Rechner gleich ist, genügt die Eingabe "ssh <server>"
-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.
* 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.&nbsp;B.&nbsp;
* 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.
|}


=== Dateitransfer ===
=== Parameter ===
* wenn man also ein Protokoll hat, das so sicher wie nach dem heutigen Stand der Technik möglichst Daten durch einen verschlüsselten Kanal senden und empfangen kann, dann wäre es wohl Verschwendung, dieses Protokoll nur für interaktive Terminal-Sessions zu benutzen
; Ziel
* sehr häufig möchte man bspw. einfach nur Dateien sicher von einem System zum anderen kopieren
* [Benutzer@]Rechnername
* dafür existieren verschiedene Programme der grafischen Benutzeroberfläche sowie gleich zwei Terminalbefehle nämlich '''scp''' und '''sftp'''
* ssh://[Benutzer@]Rechnername[:Port]


=== Secure Copy ===
=== Umgebung ===
* (abgekürzt '''scp''') ist ein Protokoll sowie ein Programm zur verschlüsselten Übertragung von Daten zwischen zwei Computern über ein Rechnernetz
=== Rückgabewert ===
* Das Protokoll selbst implementiert nur die Dateiübertragung, für die Anmeldung und Verbindung wird SSH genutzt und auf dem entfernten Rechner ein SCP-Server aufgerufen; dieser ist gleichzeitig auch das Client-Programm. Für das darunterliegende SSH wird ein SSH-Server benötigt.
scp user@pc:datei1 datei2 user@server2:


Beispiel an unseren PC's
== Konfiguration ==
scp user@fileserver:~/beispieldatei.odt user@meinpc:~/beispielordner/
=== Dateien ===
== Sicherheit ==
== Dokumentation ==
=== RFC ===
=== Man-Page ===
=== Info-Pages ===
== Siehe auch ==
== Links ==
=== Projekt-Homepage ===
=== Weblinks ===


* In diesem Beispiel wurde die datei1 aus dem Homeverzeichnis von benutzerx auf server1 und die datei2 aus dem aktuellen Verzeichnis des lokalen Hosts in das Homeverzeichnis von benutzery auf server2 kopiert.
* um die versteckten Dateien zu kopieren, benutzt der Benutzer diese Option:  '''.[!.]'''
scp -rp /Quelle-Pfad/.[!.]* user@host:/Ziel-Pfad/


=== sftp ===
[[Kategorie:SSH]]
* Die andere Möglichkeit des Dateitransfers lautet '''sftp'''. Das funktioniert genau so wie der normale Kommandozeilen-FTP-Client:
[[Kategorie:Linux/Befehl]]
* Das SSH File Transfer Protocol oder Secure File Transfer Protocol (SFTP) ist eine für die Secure Shell (SSH) entworfene Alternative zum File Transfer Protocol (FTP), die Verschlüsselung ermöglicht.
* Mit dem Befehl '''help''' bekommt man eine Übersicht über die möglichen Kommandos.


== Benutzeroberflächen ==
{{DISPLAYTITLE:ssh}}
* Wem es zu mühsam ist, auf der Kommandozeile die SSH-Verbindung zu einem Server aufzubauen, der sucht vielleicht ein grafisches Programm, um Verbindungsdaten zu verwalten.
* '''PuTTY''' [[https://wiki.foxtom.de/index.php?title=Befehl:putty]]- gibt es für Linux und für Windows. Das Programm ist in den offiziellen Paketquellen enthalten.
* '''PAC Manager''' - (Perl Auto Connector) nicht in den offiziellen Paketquellen enthalten, aber über SourceForge wird ein Fremdpaket angeboten, das manuell installiert wird.
* '''Gnome-RDP''' - mit diesem Programm kann man nicht nur RDP- und VNC-Verbindungen aufbauen, sondern auch SSH-Terminalsitzungen. In der aktuellen Version kann man die Zugangspasswörter nicht speichern und keine Angaben zum verwendeten Port machen. Es funktioniert nur mit Servern, die den Standard-SSH-Port 22 nutzen. In den offiziellen Paketquellen enthalten, benötigt '''Mono''' als Voraussetzung.
 
== Grafische Clients ==
=== Dolphin/kio ===
fish://<benutzer>@<rechner>/pfad
 
fish://user@server/home/user
 
== Verschlüsselung ==
* '''ssh''' verschlüsselt die gesamte Kommunikation zum '''sshd''', inkl. der Anmeldung und aller Tunnels. Man kann dabei zwischen verschiedenen Verschlüsselungsalgorithmen wählen, z.B.
* '''3des''' gilt als besonders sicher, benötigt aber viel Rechenzeit
* '''blowfish''' arbeitet besonders schnell
* Hier sind einige Möglichkeiten zur Auswahl des blowfish-Algorithmus im lokalen Netz, der die beteiligten Prozessoren entlastet und somit die Kommunikation beschleunigt:
  ssh -c blowfish ...
 
  ssh -o Cipher=blowfish...
* Eintrag '''Cipher blowfish''' für einige oder alle Hosts in der "~/.ssh/config" oder "/etc/ssh/ssh_config".
 
== Links ==
== Weblinks ==
# https://de.wikipedia.org/wiki/Secure_Shell
[[Kategorie:ssh]]
[[Kategorie:Linux:Befehl]]
{{DEFAULTSORT: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).
  • 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.

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.
  • 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

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