Dateien mit SCP ohne Passworteingabe kopieren

Linux Dateien mit SCP ohne Passworteingabe kopieren

Für Skripte, die man beispielsweise regelmäßig per Cronjob ausführt, um Dateien von einem Rechner auf einen anderen kopieren zu lassen, kann es etwas hinderlich sein, bei der Ausführung von SCP jedes Mal manuell das Passwort einzugeben. Man könnte die Passwortübergabe zwar in das Skript integrieren, doch dann wäre das Risiko gegeben, dass das Skript nach einer Passwortänderung nicht mehr funktioniert oder, dass neugierige Augen das Passwort in dem Skript ausspionieren.

Um diese Unannehmlichkeiten zu vermeiden, beschreibt der folgende Artikel die Möglichkeit, per SCP Dateien zu kopieren, ohne dabei Passwörter eingeben zu müssen.

Dies ist möglich, indem man Schlüssel für verschlüsselte Datenübertragung generiert und installiert, die an die IP-Adressen der beiden beteiligten Rechner gebunden sind. Die Rechner verwenden dann diese installierten Schlüssel, um sich bei der Dateiübertragung gegenseitig zu identifizieren.

Achtung: Aufgrund der Schlüsselerzeugung auf Basis der IP-Adressen der Rechner ist dieses Verfahren für Rechner mit wechselnden IP-Adressen (z.B. Server, die per DSL mit regelmäßig wechselnden IP-Adressen ans Internet angebunden sind oder Rechner in einem lokalen Netzwerk, die per DHCP ihre IP-Adressen von einem Router zugewiesen bekommen) nicht geeignet!

Neben den beschriebenen Einschränkungen sind auch einige Sicherheitsaspekte zu berücksichtigen. Die Installation der Schlüssel sorgt nämlich dafür, dass nicht nur bei SCP, sondern auch bei SSH keine Passworteingabe mehr nötig ist, wenn von der Login von einem Rechner erfolgt, dessen Schlüssel hinterlegt ist. In diesem Fall würde lediglich die Eingabe des Benutzernamens den Zugriff per SSH ermöglichen. Aus diesem Grund ist es ratsam, auf beiden beteiligten Rechnern unprivilegierte Benutzeraccounts (also nicht den Root-Account!) für das beschriebene Vorgehen zu verwenden. In den kommenden Beispielen verwenden wir deshalb den Benutzer "dateikopierer", um Dateien ohne Passworteingabe vom Rechner "server1" auf den Rechner "server2" zu kopieren.

1. Konfiguration des Quellrechners:

Die folgenden Schritte sind notwendig, um den Rechner zu konfigurieren, von dem wir die Dateien senden wollen (server1).

Zunächst müssen wir die Schlüssel für den Benutzeraccount "dateikopierer" erzeugen. Bitte dabei jeweils Enter drücken, wenn während der Schlüsselerzeugung eine Passworteingabe gefordert ist (kein Passwort eingeben!).

 

[dateikopierer@server1 dateikopierer]# ssh-keygen -t dsa

Generating public/private dsa key pair.
Enter file in which to save the key (/dateikopierer/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /dateikopierer/.ssh/id_dsa.
Your public key has been saved in /dateikopierer/.ssh/id_dsa.pub.
The key fingerprint is: f2:23:58:56:36:93:5f:8b:52:39:72:9e:e5:8b:a8:ca dateikopierer@server1

[dateikopierer@server1 dateikopierer]#

 

Die erzeugten Schlüsseldateien werden im Unterverzeichnis .ssh im Home-Verzeichnis des Benutzers abgelegt. Die Datei "id_dsa" ist der private Schlüssel. Die Datei "id_dsa.pub" enthält den öffentlichen Schlüssel, den wir auf dem Zielserver (server2) hinterlegen werden.

 

[dateikopierer@server1 dateikopierer]# cd .ssh
[dateikopierer@server1 .ssh]# ls
id_dsa  id_dsa.pub  known_hosts
[dateikopierer@server1 .ssh]#

 

Per SCP (genaue Anleitung in Teil I dieses Textes) kopieren wir nun NUR DEN ÖFFENTLICHEN TEIL DES SCHLÜSSELS in das Home-Verzeichnis des Benutzers auf server2, wohin wir später per SCP Dateien ohne Passworteingabe kopieren wollen.

 

[dateikopierer@server1 .ssh]# scp id_dsa.pub dateikopierer@server2:.ssh/public-key.tmp

 

2. Konfiguration des Ziel-Rechners

Die folgenden Schritte sind notwendig, um den Rechner zu konfigurieren, der die Dateien empfangen soll (server2).

Zunächst müssen wir uns auf server2 mit dem Benutzeraccount "dateikopierer" einloggen, dort in unserem Homeverzeichnis ein Unterverzeichnis ".ssh" anlegen und in dieses Verzeichnis wechseln.

 

[dateikopierer@server2 dateikopierer]# mkdir .ssh
[dateikopierer@server2 dateikopierer]# chmod 700 .ssh
[dateikopierer@server2 dateikopierer]# cd .ssh

 

Anschließend müssen wir unsere Datei "public-key.tmp" am Ende der Datei "authorized_keys" anhängen. Diese Datei enthält eine Liste sämtlicher öffentlicher Schlüssel von Rechnern, die sich ohne Passwort an unserem Account auf server2 anmelden dürfen.

 

[dateikopierer@server2 .ssh]# cat ~/.ssh/public-key.tmp>> authorized_keys

 

Jetzt können wir als User "dateikopierer" per SSH und per SCP Dateien von unserem server1 auf server2 kopieren, ohne dass wir dazu ein Passwort eingeben müssen.

Artikelbewertung: 
5
Average: 5 (1 vote)
War dieser Artikel hilfreich?