open:it_ssh
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| open:it_ssh [2022/11/29 15:28] – angelegt k@i | open:it_ssh [2026/08/20 14:50] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ===== SSH einrichten ===== | ||
| - | Über SSH ist es möglich eine sichere Verbindung zu einem entfernten System aufzubauen, um Befehle abzusetzen oder Daten auszutauschen (SFTP). Zugriff auf einen entfernten Server (< | ||
| - | |||
| - | Empfehlenswert: | ||
| - | * Direkter Login von root untersagen | ||
| - | * Zugang nur mit Schlüssel - login ohne Schlüssel (nur Passwort) unterbinden | ||
| - | * Optional: Eingeschränkter Zugriff über SFTP auf eingeschränkte Bereiche | ||
| - | |||
| - | Hinweise: https:// | ||
| - | |||
| - | ==== SSH-Schlüssel ==== | ||
| - | Für den Zugriff mit Schlüssel müssen diese zunächst generiert werden. | ||
| - | |||
| - | === SSH-Key unter Linux generieren === | ||
| - | Auf einem lokalen System (Hier Debian 11) Programm open-ssh-client installieren und Schlüssel generieren. | ||
| - | |||
| - | $ sudo apt install openssh-client | ||
| - | |||
| - | $ ssh-keygen -t rsa -b 4096 | ||
| - | |||
| - | t = Typ (hier rsa) \\ | ||
| - | b = Schlüssellänge (hier 4096 Bit) \\ | ||
| - | |||
| - | Schlüssel automatisch im (versteckten) Verzeichnis ~/.ssh/ \\ | ||
| - | Password nur freilassen, wenn Zugriff auf < | ||
| - | |||
| - | **Der private Schlüssel muss unbedingt vor fremdem Zugriff geschützt bleiben!** | ||
| - | |||
| - | Es werden 2 Dateien angelegt: | ||
| - | * id_rsa (privater Schlüssel) | ||
| - | * id_rsa.pub (öffentlicher Schlüssel) | ||
| - | |||
| - | Der öffentliche Schlüssel wird auf das entfernte System übertragen, | ||
| - | Der private Schlüssel bleibt auf dem lokal System, auf dem er generiert wurde. Für jedes weitere (lokale) System sollte jeweils ein eigener Schlüssel generiert werden.\\ | ||
| - | |||
| - | Zur Übertragung auf einen Server muss der < | ||
| - | Den öffentlichen Schlüssel(id_rsa.pub) auf den Server übertragen (kopieren): | ||
| - | |||
| - | $ ssh-copy-id < | ||
| - | |||
| - | Ersetzen: < | ||
| - | Das Passwort vom < | ||
| - | |||
| - | Im < | ||
| - | Parallel wird auf dem lokalen (Linux-)Rechner der neu zugefügte Host in der Datei **~/ | ||
| - | |||
| - | === SSH-Key mit Putty generieren === | ||
| - | Es ist möglich, mit dem Programm [[https:// | ||
| - | |||
| - | Die Datei hat folgende Struktur (alles hintereinander): | ||
| - | |||
| - | * ssh-rsa | ||
| - | * rsa-pub-key << der eigentliche Schlüssel aus Puttygen \\ | ||
| - | * Key Kommentar << Im Textblock von puttygen bereits enthalten\\ | ||
| - | |||
| - | Liegt bereits ein SSH-Key vor, dann kann dieser auch für den Zugriff mit Putty oder SFTP umgewandelt werden. \\ | ||
| - | Programm PuTTYgen: Private-key importieren und als PuTTY-private-key speichern. Der kann von diversen Systemen (FileZilla, etc.) genutzt werden, sofern im entfernten Server hinterlegt. Da dieser Schlüssel kopier- und übertragbar ist, sollte er immer zusätzlich mit einem Passwort geschützt sein. | ||
| - | |||
| - | Für Konvertierung Programm **PuTTYgen** aufrufen. | ||
| - | |||
| - | - Load an existing private key file | ||
| - | - Save private key >> jetzt mit Endung .ppk | ||
| - | |||
| - | ==== Login ==== | ||
| - | == Login über Linux-Shell == | ||
| - | |||
| - | Login mit Passwort oder wenn der key im < | ||
| - | |||
| - | $ ssh < | ||
| - | |||
| - | < | ||
| - | |||
| - | Beim ersten Login, wenn der public-key noch nicht auf dem Server ist oder dieser sich geändert hat. | ||
| - | $ ssh -i ~/ | ||
| - | |||
| - | * ~/ | ||
| - | * < | ||
| - | |||
| - | Beim ersten Login erfolgt eine Validierung mit dem Passwort des Systems. Bei Folgeaufrufen nur noch mit dem PW des SSH-Keys bzw. wenn keines vergeben wurde, ohne PW. \\ | ||
| - | |||
| - | Beim ersten Login werden die dann bekannten Hosts lokal in **~/ | ||
| - | |||
| - | Wurde der Schlüssel am Server geändert, oder der Server neu eingerichtet, | ||
| - | |||
| - | $ ssh-keygen -f " | ||
| - | |||
| - | === Login mit PuTTY === | ||
| - | |||
| - | Mit PuTTY die Verbindung wie folgt definieren: \\ | ||
| - | * < | ||
| - | * Port (weglassen, wenn 22 - Normalfall) | ||
| - | * SSH | ||
| - | * Name (Saved Session) | ||
| - | * / | ||
| - | * Option: / | ||
| - | * Option: / | ||
| - | * Zurück auf " | ||
| - | |||
| - | === Login mit FileZilla === | ||
| - | Für den Zugriff kann die mit Puttygen generierte .ppk-Datei genutzt werden. \\ | ||
| - | Verbindugnsart: | ||
| - | |||
| - | ==== SSH-Zugriff am Server konfigurieren ==== | ||
| - | |||
| - | $ nano / | ||
| - | |||
| - | PermitRootLogin no #root-login von Außen verbieten | ||
| - | PasswordAuthentication no # | ||
| - | Subsystem sftp internal-sftp | ||
| - | Match group ftpuser | ||
| - | X11Forwarding no | ||
| - | AllowTcpForwarding no | ||
| - | ChrootDirectory / | ||
| - | ForceCommand internal-sftp | ||
| - | PasswordAuthentication yes # | ||
| - | |||
| - | ==== Dateien kopieren über SSH ==== | ||
| - | Kopieren der Datei “foobar.txt” von einem entfernten Rechner auf den lokalen Rechner. | ||
| - | $ scp < | ||
| - | Kopieren der Datei “foobar.txt” vom lokalen Rechner auf einen entfernten Rechner. | ||
| - | $ scp foobar.txt < | ||
| - | Kopieren der Datei “foobar.txt” vom Remote-Host “< | ||
| - | $ scp < | ||
| - | Einzelne Verzeichnisse kopieren | ||
| - | Kopieren des Verzeichnisses “foo” vom lokalen Rechner in das Verzeichnis “bar” eines entfernten Rechners. | ||
| - | $ scp -r foo < | ||
| - | Quelle: https:// | ||
| - | |||
| - | ~~DISCUSSION~~ | ||
open/it_ssh.1669732110.txt.gz · Zuletzt geändert: (Externe Bearbeitung)
