SSH: Unterschied zwischen den Versionen
(+sshfs) |
|||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 28: | Zeile 28: | ||
Es gibt auch die Möglichkeit, den Schlüssel mit dem Befehl "ssh-copy-id" zum Server zu übertragen: | Es gibt auch die Möglichkeit, den Schlüssel mit dem Befehl "ssh-copy-id" zum Server zu übertragen: | ||
* '''Client:''' ssh-copy-id | * '''Client:''' ssh-copy-id remotehost -p''Port'' | ||
Die Angabe des Ports ist notwendig, wenn der SSH-Dienst auf einem Port abweichend von 22 läuft | Die Angabe des Ports ist nur notwendig, wenn der SSH-Dienst auf einem Port abweichend von 22 läuft. Nach Eingabe dieses Befehls wird das Passwort abgefragt, danach wird der öffentliche Schlüssel am Server installiert. Wenn der öffentliche Schlüssel nicht unter <code>~/.ssh/id_rsa.pub</code> abgespeichert ist, muss er mittels Parameter <code>-i</code> angegeben werden. | ||
Credits: [http://opensourceforgeeks.blogspot.co.at/2016/03/performing-ssh-login-without-password.html Performing ssh login without password using ssh-keygen and ssh-copy-id] | Credits: [http://opensourceforgeeks.blogspot.co.at/2016/03/performing-ssh-login-without-password.html Performing ssh login without password using ssh-keygen and ssh-copy-id] | ||
Zeile 61: | Zeile 61: | ||
Funktioniert natürlich ohne Passworteingabe (siehe oben) am besten. | Funktioniert natürlich ohne Passworteingabe (siehe oben) am besten. | ||
Die Dateiangaben können auch Jokerzeichen enthalten. Beispiel: | |||
scp root@somehost:/var/log/syslog* . | |||
=== SSH-Dateisystem mit sshfs mounten === | === SSH-Dateisystem mit sshfs mounten === |
Aktuelle Version vom 15. Juli 2023, 11:01 Uhr
Tipps & Tricks zu SSH
Anmeldung ohne Passwort
Besonders genial für Automatisierung von Aufgaben. Außerdem kann der Wegfall der Passworteingabe auch als Sicherheitsgewinn gesehen werden: schließlich kann das eingegebene Passwort jemand abschauen oder bspw. über Sicherheitskameras abfilmen. Wird kein Passwort eingegeben, entfällt dieses Problem.
Generieren eines Schlüsselpaars
Falls die Datei ~/.ssh/id_rsa.pub beim Client noch nicht existiert, kann sie mit dem Befehl ssh-keygen erstellt werden:
- Client: ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa -P ""
Dies erzeugt den privaten Schlüssel (id_rsa) der unbedingt am Client verbleiben muss sowie den öffentlichen Schlüssel (id_rsa.pub) der zu den Servern hochgeladen werden soll, auf denen man die Passwortabfrage vermeiden möchte.
Manuelle Installation
Wenn bspw. der Befehl ssh-copy-id nicht verfügbar ist oder man das Übertragen manuell durchführen möchte (bspw. Lerneffekt), so geht man folgendermaßen vor:
- Client: cat ~/.ssh/id_rsa.pub
- Server: touch ~/.ssh/authorized_keys
- Server: chmod 0644 ~/.ssh/authorized_keys
- Server: $EDITOR ~/.ssh/authorized_keys
Beim letzten Befehl muss die Ausgabe von "cat" am Client eingefügt werden. Von diesem Moment an entfällt die Passwortabfrage durch SSH beim Verbinden.
Automatische Installation
Es gibt auch die Möglichkeit, den Schlüssel mit dem Befehl "ssh-copy-id" zum Server zu übertragen:
- Client: ssh-copy-id remotehost -pPort
Die Angabe des Ports ist nur notwendig, wenn der SSH-Dienst auf einem Port abweichend von 22 läuft. Nach Eingabe dieses Befehls wird das Passwort abgefragt, danach wird der öffentliche Schlüssel am Server installiert. Wenn der öffentliche Schlüssel nicht unter ~/.ssh/id_rsa.pub
abgespeichert ist, muss er mittels Parameter -i
angegeben werden.
Credits: Performing ssh login without password using ssh-keygen and ssh-copy-id
Beispiel mit rsync
Backup über rsync erstellen und aktualisieren:
rsync --exclude="*Photos*" -avz -e "ssh -i my-ssh-key -6 -p2222" /home/someuser remoteuser@remotehost:/bak/home
- --exclude: Hier kann man einen Filter angeben der verhindert, dass Objekte, die dem Filter entsprechen, vom Synchronisieren ausgeschlossen werden. Dieser Parameter kann mehrmals angegeben werden.
- -6: Baut die Verbindung über IPv6 auf
- -p2222: Verbindet mit Port 2222 auf dem entfernten Host
- /home/someuser: Lokales Verzeichnis, das gesichert werden soll
- /bak/home: Zielverzeichnis auf entferntem Host - dort sollte das Verzeichnis "/bak/home/someuser" existieren
Webverweise
Dateiübertragung
Dateien kopieren mit scp
scp -PPort localfile user@remotehost:remotefile scp -PPort -r user@remotehost:remotefile/* .
Wichtig: Die Portangabe muss als erste Option stehen! Abweichend von "ssh" wird ein großes P verwendet!
Funktioniert natürlich ohne Passworteingabe (siehe oben) am besten.
Die Dateiangaben können auch Jokerzeichen enthalten. Beispiel:
scp root@somehost:/var/log/syslog* .
SSH-Dateisystem mit sshfs mounten
sshfs -o allow_other,default_permissions,IdentityFile=~/.ssh/id_rsa user@host:/remotedir /localdir