Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
howtos:ssh [2017/09/20 12:35] – [Schritt 5: nicht öffentliche Services lokal nutzen] morquai | howtos:ssh [2022/02/18 08:09] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 31: | Zeile 31: | ||
wird man freundlich nach dem Passwort gefragt. | wird man freundlich nach dem Passwort gefragt. | ||
==== Schritt 2: geht das auch ohne Passwort ==== | ==== Schritt 2: geht das auch ohne Passwort ==== | ||
- | Natürlich muss der Benutzer sich ausweisen, dafür ist aber nicht unbedingt ein Passwort erforderlich. Ein Zertifikat | + | Natürlich muss der Benutzer sich ausweisen, dafür ist aber nicht unbedingt ein Passwort erforderlich. Ein SSH Key (eine Art Ausweis) reicht auch aus, muss aber erstmal angelegt werden. Ich empfehle DRINGEND den Schlüssel mit einem Passwort (" |
ssh-keygen -t rsa -b 2048 -f < | ssh-keygen -t rsa -b 2048 -f < | ||
Lässt man "-f < | Lässt man "-f < | ||
Zeile 75: | Zeile 75: | ||
LocalForward | LocalForward | ||
IdentityFile | IdentityFile | ||
- | Damit haben wir die Passwort Abrage des Servers deaktiviert und müssen nun die Passphrase des Zertifikats | + | Damit haben wir die Passwort Abrage des Servers deaktiviert und müssen nun die Passphrase des SSH Keys eingeben. Damit haben wir aber leider nur die eine Passwortabfrage durch eine andere ersetzt. |
==== Schritt 3: Eine Passwortabfrage pro Tag ==== | ==== Schritt 3: Eine Passwortabfrage pro Tag ==== | ||
- | Die openssh Entwickler sind anscheinend ziemlich faule Gesellen. Im Paket openssh befindet sich auch ein Agent, der die Aufgabe hat sich die Zertifikate | + | Die openssh Entwickler sind anscheinend ziemlich faule Gesellen. Im Paket openssh befindet sich auch ein Agent, der die Aufgabe hat sich die SSH Keys im RAM zu merken und bei Bedarf zur Verfügung zu stellen. Die Ablage im RAM erfolgt natürlich nach allen Regeln der Sicherheit. Unter Linux (auch Cygwin) wird der Agent folgendermaßen benutzt: |
ssh-agent | ssh-agent | ||
SSH_AUTH_SOCK=/ | SSH_AUTH_SOCK=/ | ||
Zeile 97: | Zeile 97: | ||
**Hinweis: wer PuTTY und openssh unter Cygwin parallel benutzt sollte sich die Benutzung von PAGEANT (PuTTY) und die Zusammenarbeit mit ssh-pageant (openssh unter Cygwin) anschauen. [[https:// | **Hinweis: wer PuTTY und openssh unter Cygwin parallel benutzt sollte sich die Benutzung von PAGEANT (PuTTY) und die Zusammenarbeit mit ssh-pageant (openssh unter Cygwin) anschauen. [[https:// | ||
- | ==== Schritt 4: Das Zertifikat | + | ==== Schritt 4: Den SSH Key auch von server.example.com aus benutzen ==== |
- | Oft findet man eine ganze Serverlandschaft, | + | Oft findet man eine ganze Serverlandschaft, |
**Ein Private Key darf den Client NIEMALS verlassen.**\\ | **Ein Private Key darf den Client NIEMALS verlassen.**\\ | ||
Natürlich hat openssh hier eine Lösung parat, denn der ssh-agent kann noch mehr. Der Private Key kann in einer ganze Kette aufeinander folgende SSH Sessions benutzt werden. Der Schalter " | Natürlich hat openssh hier eine Lösung parat, denn der ssh-agent kann noch mehr. Der Private Key kann in einer ganze Kette aufeinander folgende SSH Sessions benutzt werden. Der Schalter " | ||
Zeile 127: | Zeile 127: | ||
+ | ==== Fazit: Beispiel einer .ssh/config ==== | ||
- | + | # Ersteinmal die Einstellungen, | |
+ | Host * | ||
+ | # ssh-agent soll die private Keys zur Verfügung stellen | ||
+ | ForwardAgent yes | ||
+ | # Bei Ungereimtheiten mit Host Keys wollen wir gefragt werden | ||
+ | StrictHostKeyChecking ask | ||
+ | # den Wert mancher Variablen wollen wir mitschleppen, | ||
+ | # die sich auf die Sprachumgebung beziehen | ||
+ | SendEnv LANG LC_* | ||
+ | # Wo steht nochmal unser Private Key? | ||
+ | IdentityFile | ||
+ | # Nun zu Server.example.com | ||
+ | # Da die für alle Hosts geltenden Einstellungen hier ebenfalls gültig sind, brauchen wir nur | ||
+ | # anzugeben, was sich ändert oder was hinzukommt | ||
+ | Host Server.example.com | ||
+ | # wie lautet unser Benutzename | ||
+ | User user | ||
+ | # unser netter Socks 5 Proxy | ||
+ | DynamicForward | ||
+ | # Der lokale Forward um den Webserver auf server.example.com zu erreichen | ||
+ | # ist ja eigentlich unnötig, denn wir haben ja einen Dynamic Forward | ||
+ | LocalForward | ||
+ | # Hier mal ein Beispiel für mehrere Server | ||
+ | Host *.example.com | ||
+ | User user | ||
+ | |||
+ | Die Grundlagen sind gelegt und die meisten Fragen beantwortet. Weitergehende HowTo' | ||
| | ||