Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
centos:ssh_c7 [27.09.2017 20:40. ] – CentOS 7 [ssh-Daemon einrichten/anpassen] sshd_config aktualisiert django | centos:ssh_c7 [31.03.2022 18:44. ] – [ssh mit ProxyCommand] django | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Secure Shell - ssh unter CentOS 7.x ====== | ====== Secure Shell - ssh unter CentOS 7.x ====== | ||
{{: | {{: | ||
+ | \\ | ||
+ | <WRAP center round info 65%> | ||
+ | **Hinweis**: | ||
+ | </ | ||
===== openSSH - Programmsuite ===== | ===== openSSH - Programmsuite ===== | ||
Zeile 3145: | Zeile 3149: | ||
**id_ed25519_dmz** enthält den privaten Schlüssel und sollte auf keinen Fall weitergegeben werden und darf auch __nur__ für den Nutzer selbst lesbar sein! **id_ed25519_dmz.pub**, | **id_ed25519_dmz** enthält den privaten Schlüssel und sollte auf keinen Fall weitergegeben werden und darf auch __nur__ für den Nutzer selbst lesbar sein! **id_ed25519_dmz.pub**, | ||
+ | |||
+ | ==== Passphrase eines SSH-Keys ändern ==== | ||
+ | Will man die passphrase eines bestehenden SSH-Keys ändern benutzt man wie schon bei der Erstellung des Schlüssel(paares) den Befehl **ssh-keygen**. | ||
+ | $ ssh-keygen -p -f ~/ | ||
+ | |||
+ | Enter old passphrase: | ||
+ | |||
+ | Enter new passphrase (empty for no passphrase): | ||
+ | |||
+ | Enter same passphrase again: | ||
+ | |||
+ | Your identification has been saved with the new passphrase. | ||
+ | |||
==== Zielverzeichnis anlegen und öffentlichen Schlüssel kopieren | ==== Zielverzeichnis anlegen und öffentlichen Schlüssel kopieren | ||
Auf dem Zielrechner legen wir nun das Verzeichnis **.ssh** an und schützen es entsprechend. | Auf dem Zielrechner legen wir nun das Verzeichnis **.ssh** an und schützen es entsprechend. | ||
Zeile 3174: | Zeile 3191: | ||
<WRAP round important> | <WRAP round important> | ||
- | Der User muß selbst darauf achten, dass sein privater Schlüssel nicht in fremde Hände gelangt! Will man noch sicherer gehen, vergibt man, wie Eingangs bereits erwähnt, bei der Erzeugung des Schlüssels eine Passphrase. Diese muss er User dann aber bei jedem neuen Verbindungsaufbau angeben!</ | + | Der User muß selbst darauf achten, dass sein privater Schlüssel nicht in fremde Hände gelangt! Will man noch sicherer gehen, vergibt man, wie Eingangs bereits erwähnt, bei der Erzeugung des Schlüssels eine Passphrase. Diese muss er User dann aber bei jedem neuen Verbindungsaufbau angeben! |
+ | |||
+ | <WRAP center round tip> | ||
+ | Möchte man seine Schlüssel sicher ausserhalb seines Rechners/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | </ | ||
===== ssh-Daemon ===== | ===== ssh-Daemon ===== | ||
Zeile 3660: | Zeile 3684: | ||
===== ssh in der Praxis (Teil 2) ===== | ===== ssh in der Praxis (Teil 2) ===== | ||
==== Verbindungsaufbau via SSH ==== | ==== Verbindungsaufbau via SSH ==== | ||
- | Nachdem wir den Login mit Passwort deaktiviert haben, werden wir nun beim Verbindungsaufbau nach der Passphrase des zur Anwendung kommenden Schlüssels gefragt. | + | Nun ist es an der Zeit, dass wir uns mit unserem Zielhost verbinden. |
+ | |||
+ | <WRAP center round important 80%> | ||
+ | **Achtung**: | ||
+ | Doch bevor wir das machen, besorgen wir uns zuerst einmal noch die **fingerprints** des Zielhosts! doch warum sollten wir das machen? Nun, beim initialen Verbindungsaufbau wird uns der Fingerprint des '' | ||
+ | |||
+ | Also wichtig, nicht einfach **__blind__** irgendwelchen Zielen vertrauen. Eine gewisse Paranoia als Admin an den Tag legen ist nie verkehrt! | ||
+ | </ | ||
+ | |||
+ | Wir melden uns also direkt an der Konsole unseres Zielsystems vor Ort oder über eine Remote-Konsole an und lassen uns die betreffenden Fingerprints ausgeben. Hierzu ist es notwendig, dass wir das als Nutzer **'' | ||
+ | | ||
+ | < | ||
+ | -rw-r-----. 1 root ssh_keys | ||
+ | -rw-r-----. 1 root ssh_keys 1675 Jan 17 2017 / | ||
+ | |||
+ | Die Fingerprints dieser drei Schlüssel (**ECDSA**, **ED25519**, | ||
+ | | ||
+ | < | ||
+ | 256 SHA256: | ||
+ | 2048 SHA256: | ||
+ | |||
+ | Nun können wir uns das erste mal mit unserem Zielhost verbinden. | ||
$ ssh www | $ ssh www | ||
- | < | + | < |
+ | ED25519 key fingerprint is SHA256: | ||
+ | Are you sure you want to continue connecting (yes/ | ||
+ | |||
+ | Den angezeigten Fingerprint **'' | ||
+ | 256 SHA256: | ||
+ | |||
+ | Da sich dieser nicht unterscheidet, | ||
+ | yes | ||
+ | < | ||
+ | ############################################################################## | ||
# # | # # | ||
# This is server of nausch.org. | # This is server of nausch.org. | ||
Zeile 3679: | Zeile 3734: | ||
# This is server of nausch.org. | # This is server of nausch.org. | ||
# # | # # | ||
- | # kd-141271-b357-fr138d | + | # kd-141271-b357-fr13nd |
# # | # # | ||
# | # | ||
Zeile 3688: | Zeile 3743: | ||
############################################################################## | ############################################################################## | ||
- | [django@kd-141271-b357-fr138d | + | [django@kd-141271-b357-fr13nd |
</ | </ | ||
Zeile 3702: | Zeile 3757: | ||
<file bash ~/ | <file bash ~/ | ||
# Django : 2016-11-18 | # Django : 2016-11-18 | ||
+ | |||
+ | # Standardwerte die für alle nachfolgenden Hosts gelten sollen, sofern diese Werte nicht überschrieben werden. | ||
+ | Host * | ||
+ | User django | ||
+ | | ||
+ | |||
Host 04x1 | Host 04x1 | ||
- | | + | |
Port 9922 | Port 9922 | ||
- | User django | ||
| | ||
| | ||
- | | ||
| | ||
Zeile 3714: | Zeile 3773: | ||
| | ||
Port 22 | Port 22 | ||
- | User django | ||
| | ||
- | | ||
| | ||
Zeile 3729: | Zeile 3786: | ||
- | Im folgenden Beispiel würde | + | Im folgenden Beispiel würde |
$ ssh 04x1 | $ ssh 04x1 | ||
__Ohne__ unsere Clientkonfigurationsdatei müssten wir hingegen folgenden Aufruf verwenden. | __Ohne__ unsere Clientkonfigurationsdatei müssten wir hingegen folgenden Aufruf verwenden. | ||
- | $ ssh -p 9922 -u django -Y -A -2 -i ~/ | + | $ ssh -p 9922 -u django -Y -A -2 -i ~/ |
Zeile 3824: | Zeile 3881: | ||
Von der Admin-Workstation aus, wollen wir nun nicht nur zum nächstgelegenen Host springen, sondern auch zum übernächsten oder gar zu einem Host im Internet, den wir aber aus Sicherheitsgründen nicht direkt erreichen dürfen und auch können. | Von der Admin-Workstation aus, wollen wir nun nicht nur zum nächstgelegenen Host springen, sondern auch zum übernächsten oder gar zu einem Host im Internet, den wir aber aus Sicherheitsgründen nicht direkt erreichen dürfen und auch können. | ||
=== System-Skizze === | === System-Skizze === | ||
- | < | + | <uml> |
state Firewall_A { | state Firewall_A { | ||
Firewall_A : ----------- | Firewall_A : ----------- | ||
Zeile 3941: | Zeile 3997: | ||
Die Komfortabelste Variante ist nun die Nutzung der Option **ProxyCommand**. Hierzu erweitern wir die bereits bei der [[centos: | Die Komfortabelste Variante ist nun die Nutzung der Option **ProxyCommand**. Hierzu erweitern wir die bereits bei der [[centos: | ||
$ vim ~/ | $ vim ~/ | ||
- | <file bash ~/ | + | <file bash ~/ |
+ | Host * | ||
+ | Port 22 | ||
+ | Protocol 2 | ||
+ | user admin | ||
+ | |||
+ | # Django : 2012-06-13 | ||
# ssh-jumps über mehrere Sprunghosts | # ssh-jumps über mehrere Sprunghosts | ||
Zeile 3948: | Zeile 4010: | ||
Host fwc | Host fwc | ||
Hostname firewall-c.idmz.nausch.org | Hostname firewall-c.idmz.nausch.org | ||
- | Port 22 | ||
- | Protocol 2 | ||
- | user admin | ||
IdentityFile ~/ | IdentityFile ~/ | ||
Zeile 3957: | Zeile 4016: | ||
Host fwb | Host fwb | ||
Hostname firewall-b.edmz.nausch.org | Hostname firewall-b.edmz.nausch.org | ||
- | Port 22 | ||
- | Protocol 2 | ||
- | user admin | ||
IdentityFile ~/ | IdentityFile ~/ | ||
ProxyCommand | ProxyCommand | ||
Zeile 3968: | Zeile 4024: | ||
Hostname firewall-a.nausch.org | Hostname firewall-a.nausch.org | ||
Port 22222 | Port 22222 | ||
- | | + | user sysadmin |
- | | + | |
IdentityFile ~/ | IdentityFile ~/ | ||
ProxyCommand | ProxyCommand | ||
Zeile 3978: | Zeile 4033: | ||
Hostname < | Hostname < | ||
Port 42422 | Port 42422 | ||
- | Protocol 2 | ||
user n3rd | user n3rd | ||
IdentityFile ~/ | IdentityFile ~/ | ||
Zeile 4057: | Zeile 4111: | ||
* **[[http:// | * **[[http:// | ||
- | ~~AUTOTWEET: | + | |
- | ~~DISCUSSION~~ | + |