Server miteinander bekannt machen für die Nutzung von ssh und scp ohne Passwort-Abfrage
Für das Kopieren von Dateien von einem Server zu einem anderen kann der Befehl scp verwendet werden. In der Normal-Konfiguration wird allerdings immer nach dem Passwort des Users auf dem Ziel-Server gefragt. Mittels Generierung von Schlüsseln können Server miteinander bekannt gemacht werden. Dann entfällt die Passwort-Aufforderung. scp kann dann auch innerhalb von bash-scripten verwendet werden. Der ssh-Login ist dann auch ohne Passwort möglich.
Anleitung wie folgt abgeleitet von folgender URL:
http://www.spaceprogram.com/knowledge/cron_scp.html
Ziel: Rechner 1 soll auf Rechner 2 ssh-Login und rsync-Übertragung ohne Passwortabfrage können. Damit ist scripting möglich.
Verschlüsselungsverfahren RSA funktioniert für protocol ssh1 und ssh2, DSA nur für protocol ssh2.
Prüfe, ob auf Rechner 1 bereits ein ssh-Schlüsselpaar private/public generiert wurde:
Existiert im Home-Verzeichnis des betreffenden Users ein Verzeichnis namens ".ssh" mit Dateien id_rsa.pub bzw. id_dsa.pub?
Nachfolgende Beschreibung bezieht sich auf das DSA-Verfahren. Vorgang funktioniert für RSA aber gleich.
Falls das ssh-Verz. nicht existiert, führe aus:
ssh-keygen -t dsa -C [eigene E-Mail-Adresse]
Falls das ssh-Verz. und die Dateien existieren, kopiere den public key auf Rechner 2:
scp ~/.ssh/id_dsa.pub [ssh-user]@[remote-host]:~
Log Dich auf Rechner 2 ein und prüfe dort ebenfalls, ob bereits ein ssh-Schlüsselpaar generiert wurde. Falls nicht, führe aus:
ssh-keygen -t dsa
Dadurch wird das Schlüsselverzeichnis .ssh mit den nötigen Dateien erstellt.
Füge den Inhalt des kopierten public key von Rechner 1 ergänzend an folgende Datei (falls die Datei authorized_keys noch nicht existiert, wird sie dadurch erzeugt):
cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
Lösche den zuvor kopierten public key:
rm ~/id_dsa.pub
Setze Rechte sauber:
chmod 644 ~/.ssh/authorized_keys
Rechner 2 kennt nun den public key von Rechner 1. Teste, ob Du dich von Rechner 1 auf Rechner 2 per ssh ohne Passwortabfrage einloggen kannst:
ssh user_rechner2@hostname_rechner2
Falls ja, so sollte auch die Anwendung von rsync ohne Passwort-Abfrage funktionieren.
Falls nein, so solltest Du nochmal die oben aufgeführten Schritte prüfen :-)