Hier nun einmal eine Kurzanleitung wie man einen automatischen Login über SSH realisiert um ggf. Backups auf einem seperatem Server zu sichern. Diese Anleitung funktioniert sowohl über Debian als auch über Ubuntu. Diese zwei Betriebsysteme werden deshalb genannt, da sie über die einfache Paketverwaltung verfügen.
Als erstes benötigt man auf beiden Servern den SSH-Client1 und natürlich die Möglichkeit der Verschlüsselung über SSL2.
aptitude -y install ssh openssl ssl-cert
Eigentlich ist standardmäßig ein SSH-Client auf einem Root- oder V-Server installiert. Sollte es bei der Anweisung ssh zu einem Warnhinweis kommen, das dies bereits installiert ist, kann dieser ignoriert werden. Analog dazu die Anweisungen openssl und ssl-cert, die für die Erstellung von Zertifikaten nötig sind.
adduser backupuser
Mit dem Befehl adduser, der aus dem Bereich Debian / Ubuntu kommt, legt man sich einfachshalber auf beiden Servern den gleichen Benutzer an, der für die Kommunikation zuständig sein wird. Im allgemeinen Linuxbereich heisst dieser Befehl useradd. Bei genannten Befehl wird autoamtisch ein Benutzerverzeichnis und die benötigten Zugriffsrechte gesetzt. Mit passwd backupuser lässt sich das Passwort setzten, falls nicht schon bei adduser geschehen.
[Server A] => Hier werden Backups erstellt die auf einen anderen Server, über SSH, verschoben werden sollen.
[Server B] => Stellt die Möglichkeit bereit, sich ohne Passwort aber über SSL zu verbinden.
Es geht nun also auf Server A los. Als erstes meldet man sich mit dem User backupuser an und erstellt im Homverzeichnis ein „.ssh” Verzeichnis. Betritt es und erstellt darin einen Public- und Private-Key. Bei der Abfrage des gewünschten Dateinamen gibt man ssh.key ein. bei der Passwortabfrage einfach mit [ENTER] bestätigen und kein Passwort eintragen.
mkdir ~/.ssh
cd ~/.ssh
ssh-keygen -b 2048 -t rsa
Hierbei erhält man nun folgende zwei Dateien: id_dsa und id_dsa.pub. Dabei handelt es sich um den genannten Private- und Public-Key. Die Datei ssh.key.pub wird nun auf Server B kopiert. Der Ort sollte optional das Homeverzeichnis des zuvor erstellten Benutzers sein.
cat ssh.key.pub >> ~/.ssh/authorized_keys
Mit dem letzten Schritt fügt man den Public-Key zu den authorized keys, des aktuellen Benutzers hinzu. Sollte es hierbei zu einem Fehler kommen, ist wohlmöglich noch kein .ssh - Verzeichnis vorhanden. Demnach noch folgende Operationen durchführen und den letzten Schritt wiederholen.
mkdir ~/.ssh
touch ~/.ssh/authorized_keys
chmod go-rwx ~/.ssh/authorized_keys
Hierbei wird das besagte Verzeichnis und eine Datei mit dem Namen authorized_keys erstellt. Für einen nicht-öffentlichen Zugriff auf diese Datei sorgt der letzte Befehl.
Hat man dies erledigt lässt sich mit folgendem Befehl eine Datei vom Homeverzeichnis Server A auf das Homeverzeichnis Server B kopieren ohne eine Passwortabfrage zu erhalten. Dabei beziehe ich mich auf den erstellten backupuser und nenne Server B im folgendem Beispiel serv. Die backup.tgz steht für ein beispielhaftes Backup. (Die Datei ssh.key wurde zuvor mit oben beschriebenen Schritt erstellt)
scp -i ~/.ssh/ssh.key ~/backup.tgz backupuser@serv:backup.tgz
Es ist zu beachten, das der Zielpfad, das Homeverzeichnis von backupuser ist. Nach dem Doppelpunkt darf kein / (Slash) folgen!
Ich hoffe diese Anleitung bringt einigen etwas licht ins dunkle. Persönlich habe ich immer einen großen Bogen um diese Thematik gemacht. Wie man aber sieht, ist es gar nicht so schwer. Viel Erfolg beim ausprobieren.
