Verbindung zu Server mit ssh, rsync und scp
ssh
- Benötigte Debian-Pakete:
sudo apt install rsync openssh-client wget
- ssh key erstellen:
ssh-keygen -b 4096
Passwort nicht leer lassen! Sicheres Passwort wählen!
- ssh key auf Server kopieren
Auf dem Sever auf den du dich verbinden willst, kommt dein public key (id_rsa.pub) in das File "authorized_keys" im Pfad ~/.ssh/authorized_keys
In dem File werden nacheinander die public keys aller Personen aufgeführt, die sich per ssh-key Authentifizeirung (auth) verbinden können. Falls du das File und / oder den Ordner selber erstellst, muss du auf die korrekte Berechtigung achten damit ssh funktioniert:
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys
- ssh agent:
Damit ich nicht mit jeder Verbindung das Passwort eingeben muss, benutze ich einen ssh-agent. Dazu füge ich folgende Code in die fish_config ein:
eval $(ssh-agent -c)
Funktioniert erst nach Neustart des Terminals oder nach dem Befehl:
source .config/fish/config.fish
rsync
Das rsync Programm wird für die inkrementelle Synchronisation von Dateien benutzt. Inkrementell heisst, wenn die Synchronisation abbricht, setzt sie beim nächsten mal da fort, wo sie aufgehört hat. Rsnyc kann für die Synchronisation von lokalen Verzecihnisse benutzt werden und kann sehr viele Dateeien verarbeiten. Für die Synchronisation von und zu Servern, wird zusätzlich ssh verwendet:
rsync -avz --rsh='ssh -p <PortNummer>' username@serveradresse.com:/pfad/zu/meinordner/ lokalerordner/
Dieser Befehl, synchronisiert die Inhalte des Verzeichnisses "meinordner" mit dem Inhalt des lokalen Ordners "lokalerordner".
Wenn ich einen ganzen Ordner, der lokal nicht existiert, vom Server zu mir kopieren will, nutze ich folgenden Befehl:
rsync -avz --rsh='ssh -p <PortNummer>' username@serveradresse.com:/pfad/zu/meinordner .
In diesem Befehl bedeutet der Punkt "." kopier alles genau hierhin, wo ich jetzt im Verzechnis, indem ich den Befehl aussführe, bin. Da ich nach "meinordner" kein / angefügt habe, wird "meinordner" lokal erstellt. Möchte ich stattdessen nur die Inhalte von "meinordner" zu mir kopieren, müsste ich nach "meinordner" ein / anfügen ("meinordner/").
scp
Um einzelne Dokumente vom oder zum Server zu kopieren, nutze ich den Befehl scp. Vom Server:
scp user@servername:/pfad/zu/meinordner/meinedatei.dateityp .
Zum Server:
scp meinedatei.dateityp user@servername:/pfad/zu/meinzielordner/