Fernzugriff mit SSH: Unterschied zwischen den Versionen
Celine (Diskussion | Beiträge) |
|||
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 5: | Zeile 5: | ||
Beschreibung der Programme des Paketes OpenSSH. | Beschreibung der Programme des Paketes OpenSSH. | ||
Das Paket OpenSSH bietet Programme, die einen Fernzugriff auf andere Netzwerknoten und Dateitransfer | Das Paket OpenSSH bietet Programme, die einen Fernzugriff auf andere Netzwerknoten und Dateitransfer anbieten. Alle Programme arbeiten mit Verschlüsselung. | ||
= Verschlüsselung = | = Verschlüsselung = | ||
Zeile 16: | Zeile 16: | ||
* Symmetrische Verschlüsselung: Für die Verschlüsselung und Entschlüsselung wird das gleiche Geheimnis verwendet. | * Symmetrische Verschlüsselung: Für die Verschlüsselung und Entschlüsselung wird das gleiche Geheimnis verwendet. | ||
** Vorteil: einfaches Verfahren, schnell | ** Vorteil: einfaches Verfahren, schnell | ||
** Wenn Knoten A das Geheimnis kennt, weil er verschlüsseln muss, kann er jede andere Nachricht auch entschlüsseln. Man muss also dem Knoten A vollkommen vertrauen. | ** Nachteil: Wenn Knoten A das Geheimnis kennt, weil er verschlüsseln muss, kann er jede andere Nachricht auch entschlüsseln. Man muss also dem Knoten A vollkommen vertrauen. | ||
* Asymmetrische Verschlüsselung: Das Verschlüsseln benutzt ein anderes Geheimnis (öffentlicher Schlüssel) als das Entschlüsseln (privater Schlüssel). | * Asymmetrische Verschlüsselung: Das Verschlüsseln benutzt ein anderes Geheimnis (öffentlicher Schlüssel) als das Entschlüsseln (privater Schlüssel). | ||
** Vorteil: Jeder kann verschlüsseln, wenn er den öffentlichen Schlüssel kennt. Aber nur der Besitzer des geheimen Schlüssels kann entschlüsseln. Damit kann der öffentlichen Schlüssel jedermann bekannt gemacht werden, und jedermann kann uns eine verschlüsselte Nachricht schicken. Aber nur wir mit dem privaten Schlüssel können solche Nachrichten wieder entschlüsseln. | ** Vorteil: Jeder kann verschlüsseln, wenn er den öffentlichen Schlüssel kennt. Aber nur der Besitzer des geheimen Schlüssels kann entschlüsseln. Damit kann der öffentlichen Schlüssel jedermann bekannt gemacht werden, und jedermann kann uns eine verschlüsselte Nachricht schicken. Aber nur wir mit dem privaten Schlüssel können solche Nachrichten wieder entschlüsseln. | ||
Zeile 52: | Zeile 52: | ||
== Anmelden auf einem anderen Netzwerkknoten == | == Anmelden auf einem anderen Netzwerkknoten == | ||
* ssh-add schon gestartet? | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
# normalerweise: | # normalerweise: | ||
Zeile 58: | Zeile 59: | ||
ssh -p 123456 huber@bug.hamatoma.de | ssh -p 123456 huber@bug.hamatoma.de | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Dateien kopieren mit scp == | |||
<syntaxhighlight lang="bash"> | |||
NAME=huber | |||
SERVER=$NAME@bug.hamatoma.de | |||
set -x | |||
# von lokal auf den Partnerknoten: | |||
echo "Hi peer!" >/tmp/data.txt | |||
scp -p /tmp/data.txt $SERVER:/tmp | |||
# vom Partnerknoten auf lokal: | |||
scp -p $SERVER:/tmp/data.txt /tmp/data2.txt | |||
cat /tmp/data2.txt | |||
# Bei einem anderen Port: | |||
ssp -p -P 123456 data $SERVER:/tmp | |||
</syntaxhighlight> | |||
* die Option -p sorgt dafür, dass die Dateirechte auch übertragen werden (wenn möglich) | |||
* die Option -P <port> erlaubt es, die Port anzugeben. | |||
== Dateien kopieren mit rsync == | |||
'''rsync''' ist ein Programm, das intelligent Dateien kopiert: Es werden nur Dateien kopiert, die neu sind oder nicht geändert wurden. Das ist ideal für Backup. | |||
rsync arbeitet lokal oder mit Netzwerkknoten. | |||
<syntaxhighlight lang="bash"> | |||
NAME=huber | |||
SERVER=$NAME@bug.hamatoma.de | |||
set -x | |||
# von lokal auf den Partnerknoten: | |||
rsync -a data.txt $SERVER:/tmp | |||
# vom Partnerknoten auf lokal: | |||
rsync -a $SERVER:/tmp/data.txt data2.txt | |||
# Bei einem anderen Port: | |||
ssp -p -P 123456 data $SERVER:/tmp | |||
</syntaxhighlight> | |||
== Externes Dateisystem einhängen: sshfs == | |||
Zum einfachen Dateiaustausch dient das Kommando | |||
<syntaxhighlight lang="bash"> | |||
sshfs USERNAME@192.168.1.1:/home/USERNAME ~/srv/ | |||
</syntaxhighlight> | |||
Dabei wird das entfernte Verzeichnis /home/USERNAME unter dem Verzeichnis ~/srv verfügbar. |
Aktuelle Version vom 20. Februar 2024, 19:04 Uhr
Links
Zielsetzung
Beschreibung der Programme des Paketes OpenSSH.
Das Paket OpenSSH bietet Programme, die einen Fernzugriff auf andere Netzwerknoten und Dateitransfer anbieten. Alle Programme arbeiten mit Verschlüsselung.
Verschlüsselung
Verschlüsselung ist die Veränderung von Daten, damit diese von Unbefugten nicht verstanden werden können.
Eine Verschlüsselung benutzt ein Geheimnis (Passwort). Wer das Geheimnis kennt, kann die Verschlüsselung rückgängig machen.
Es gibt 2 Typen von Verschlüsselung:
- Symmetrische Verschlüsselung: Für die Verschlüsselung und Entschlüsselung wird das gleiche Geheimnis verwendet.
- Vorteil: einfaches Verfahren, schnell
- Nachteil: Wenn Knoten A das Geheimnis kennt, weil er verschlüsseln muss, kann er jede andere Nachricht auch entschlüsseln. Man muss also dem Knoten A vollkommen vertrauen.
- Asymmetrische Verschlüsselung: Das Verschlüsseln benutzt ein anderes Geheimnis (öffentlicher Schlüssel) als das Entschlüsseln (privater Schlüssel).
- Vorteil: Jeder kann verschlüsseln, wenn er den öffentlichen Schlüssel kennt. Aber nur der Besitzer des geheimen Schlüssels kann entschlüsseln. Damit kann der öffentlichen Schlüssel jedermann bekannt gemacht werden, und jedermann kann uns eine verschlüsselte Nachricht schicken. Aber nur wir mit dem privaten Schlüssel können solche Nachrichten wieder entschlüsseln.
- Nachteil: komplizierter, langsamer
OpenSSh verwendet beide Verfahren:
- Zuerst wird asymmetrische Verschlüsselung zum Verbindungsaufbau verwendet.
- Dann wird ein zufälliges Geheimnis erzeugt und dem Partner mitgeteilt.
- Der Rest der Kommunikation arbeitet dann mit dem temporäten Geheimnis.
Schlüsselverwaltung für asymmetrische Verschlüsselung
Erzeugen eines Schlüsselpaares
ssh-keygen -t rsa -b 4096
cat $HOME/.ssh/*.pub
- Es wird ein Verzeichnis $HOME/.ssh erzeugt und darin zwei Dateien angelegt:
- id_rsa Der private Schlüssel
- id_rsa.pub Der öffentliche Schlüssel
Beim Anlegen wird nach einem Passwort gefragt, mit dem der private Schlüssel geschützt wird. Nur wer das Passwort kennt, kann den privaten Schlüssel benutzen.
Installieren des öffentlichen Schlüssels auf einem anderen Netzwerknoten
# normalerweise, wenn nur ein Schlüsselpaar existiert:
ssh-copy-id hm@host
# wenn nur mehrere Schlüsselpaar existieren oder ein anderer Port verwendet wird:
ssh-copy-id -p 22 -i ~/.ssh/id_rsa hm@hamatoma.de
- die Adresse hm@host enthält den Benutzernamen auf dem anderen Knoten (hier hm) und die Netzwerkadresse des anderen Knotens (hier hamatoma.de)
Das Passwort in der Session merken
Es gibt ein Programm ssh-add
, das erlaubt, das Passwort für den privaten Schlüssel nur einmal einzugeben. Solange, bis sich der Benutzer abmeldet.
Arbeiten im Netzwerk
Anmelden auf einem anderen Netzwerkknoten
- ssh-add schon gestartet?
# normalerweise:
ssh huber@bug.hamatoma.de
# Bei einem anderen Port:
ssh -p 123456 huber@bug.hamatoma.de
Dateien kopieren mit scp
NAME=huber
SERVER=$NAME@bug.hamatoma.de
set -x
# von lokal auf den Partnerknoten:
echo "Hi peer!" >/tmp/data.txt
scp -p /tmp/data.txt $SERVER:/tmp
# vom Partnerknoten auf lokal:
scp -p $SERVER:/tmp/data.txt /tmp/data2.txt
cat /tmp/data2.txt
# Bei einem anderen Port:
ssp -p -P 123456 data $SERVER:/tmp
- die Option -p sorgt dafür, dass die Dateirechte auch übertragen werden (wenn möglich)
- die Option -P <port> erlaubt es, die Port anzugeben.
Dateien kopieren mit rsync
rsync ist ein Programm, das intelligent Dateien kopiert: Es werden nur Dateien kopiert, die neu sind oder nicht geändert wurden. Das ist ideal für Backup.
rsync arbeitet lokal oder mit Netzwerkknoten.
NAME=huber
SERVER=$NAME@bug.hamatoma.de
set -x
# von lokal auf den Partnerknoten:
rsync -a data.txt $SERVER:/tmp
# vom Partnerknoten auf lokal:
rsync -a $SERVER:/tmp/data.txt data2.txt
# Bei einem anderen Port:
ssp -p -P 123456 data $SERVER:/tmp
Externes Dateisystem einhängen: sshfs
Zum einfachen Dateiaustausch dient das Kommando
sshfs USERNAME@192.168.1.1:/home/USERNAME ~/srv/
Dabei wird das entfernte Verzeichnis /home/USERNAME unter dem Verzeichnis ~/srv verfügbar.