Linux: Dateien per SCP ohne Passworteingabe kopieren (SSH)

Wenn Sie automatisch per SCP Dateien kopieren möchten und dabei nicht das Passwort eingeben können oder möchten, dann hilft Ihnen diese Anleitung.
In dieser Anleitung sollen Dateien von Server 1 auf Server 2 kopiert werden.

Für dieses Beispiel gelten folgende Bedingungen:

  • Das Script liegt auf Server 2 - die Daten werden von Server 1 "abgeholt"
  • Der Benutzer für den Datentransfer heißt "backup"
Vorbereitungen auf Server 1 (Quelle):
  • Unter dem Benutzernamen "backup" anmelden oder zum Benutzer wechseln:
    su backup
  • Schlüssel für den automatischen Zugriff von Server 2 erstellen. Dieser gilt nur für den aktuell angemeldeten Benutzernamen.
    ssh-keygen -t dsa
    Jede Frage mit "Enter" beantworten und kein Passwort eingeben:
    Generating public/private dsa key pair. 
    Enter file in which to save the key (/home/backup/.ssh/id_dsa): 
    Created directory '/home/backup/.ssh'. 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /home/backup/.ssh/id_dsa. 
    Your public key has been saved in /home/backup/.ssh/id_dsa.pub. 
    The key fingerprint is: d2:5a:6c:9f:15:5c:2c:d1:d1:d5:3b:7f:3c:88:bf:d3 backup@servername.com 
    The key's randomart image is: +--[ DSA 1024]----+ [Ihr virtueller Fingerabdruck] +-----------------+
    
    Die Datei liegt im .ssh Unterverzeichnis des Benutzers
Vorbereitungen auf Server 2 (Ziel):
  • Ggf. müssen wir zuerst das .ssh Verzeichnis auf Server2 für den Benutzer "backup" anlegen:
    mkdir /home/backup/.ssh 
    chmod 700 /home/backup/.ssh 
    chown backup:backup /home/backup/.ssh
  • Wir benötigen den öffentlichen Schlüssel des Benutzers "backup" vom "Server 1" auf diesem Server. Durch diesen Schlüssel kann sich später Server 2 automatisch bei Server 1 anmelden (identifizieren).
    scp backup@server1:~/.ssh/id_dsa.pub /home/backup/.ssh/public-key.tmp