So kopieren Sie Dateien aus der Ferne über SSH, ohne Ihr Passwort einzugeben



SSH ist ein Lebensretter, wenn Sie einen Computer remote verwalten müssen, aber wussten Sie, dass Sie auch Dateien hochladen und herunterladen können? Mit SSH-Schlüsseln können Sie die Eingabe von Passwörtern überspringen und diese für Skripte verwenden!

Dieser Vorgang funktioniert unter Linux und Mac OS, vorausgesetzt, sie sind richtig für den SSH-Zugriff konfiguriert. Wenn Sie Windows verwenden, können Sie Verwenden Sie Cygwin, um Linux-ähnliche Funktionen zu erhalten , und mit ein wenig Nachbesserung SSH läuft auch .





Kopieren von Dateien über SSH

Sicheres Kopieren ist ein wirklich nützlicher Befehl und sehr einfach zu bedienen. Das grundlegende Format des Befehls ist wie folgt:

scp [Optionen] Originaldatei Zieldatei



Der größte Kicker ist, wie man den Remote-Teil formatiert. Wenn Sie eine Remote-Datei adressieren, müssen Sie dies wie folgt tun:

Benutzer@Server:Pfad/zu/Datei

Der Server kann eine URL oder eine IP-Adresse sein. Darauf folgt ein Doppelpunkt, dann der Pfad zu der betreffenden Datei oder dem betreffenden Ordner. Schauen wir uns ein Beispiel an.



scp –P 40050 Desktop/url.txt yatri@192.168.1.50:~/Desktop/url.txt

Anzeige

Dieser Befehl enthält das Flag [-P] (beachten Sie, dass es sich um ein großes P handelt). Dadurch kann ich statt der Standardnummer 22 eine Portnummer angeben. Dies ist für mich aufgrund der Konfiguration meines Systems erforderlich.

Als nächstes ist meine Originaldatei url.txt, die sich in einem Verzeichnis namens Desktop befindet. Die Zieldatei befindet sich in ~/Desktop/url.txt, die mit /user/yatri/Desktop/url.txt identisch ist. Dieser Befehl wird vom Benutzer yatri auf dem Remote-Computer 192.168.1.50 ausgeführt.

ssh 1

Was ist, wenn Sie das Gegenteil tun müssen? Auf ähnliche Weise können Sie Dateien von einem Remote-Server kopieren.

ssh 2

Hier habe ich eine Datei aus dem Ordner ~/Desktop/ des Remote-Computers in den Desktop-Ordner meines Computers kopiert.

Um ganze Verzeichnisse zu kopieren, müssen Sie das Flag [-r] verwenden (beachten Sie, dass es ein kleines r ist).

scp rekursiv

Sie können auch Flaggen kombinieren. Anstatt

scp –P –r …

Du kannst einfach tun

scp –Pr …

Der schwierigste Teil hier ist, dass die Vervollständigung von Tabs nicht immer funktioniert, daher ist es hilfreich, ein anderes Terminal mit einer laufenden SSH-Sitzung zu haben, damit Sie wissen, wo Sie die Dinge ablegen müssen.

SSH und SCP ohne Passwörter

Sicheres Kopieren ist großartig. Sie können es in Skripte einfügen und Backups auf Remote-Computern erstellen. Das Problem ist, dass Sie möglicherweise nicht immer in der Nähe sind, um das Kennwort einzugeben. Und seien wir ehrlich, es ist eine echte Qual, Ihr Passwort für einen Remote-Computer einzugeben, auf den Sie offensichtlich jederzeit Zugriff haben.

Anzeige

Nun, wir können Passwörter umgehen, indem wir Schlüsseldateien verwenden, technisch PEM-Dateien genannt . Wir können den Computer zwei Schlüsseldateien generieren lassen – eine öffentliche, die zum Remote-Server gehört, und eine private, die sich auf Ihrem Computer befindet und sicher sein muss – und diese werden anstelle eines Passworts verwendet. Ziemlich bequem, oder?

Geben Sie auf Ihrem Computer den folgenden Befehl ein:

ssh-keygen –t rsa

Dadurch werden die beiden Schlüssel generiert und eingefügt:

~/.ssh/

mit den Namen id_rsa für Ihren privaten Schlüssel und id_rsa.pub für Ihren öffentlichen Schlüssel.

keygen 1

Nach Eingabe des Befehls werden Sie gefragt, wo der Schlüssel gespeichert werden soll. Sie können die Eingabetaste drücken, um die oben genannten Standardeinstellungen zu verwenden.

Als nächstes werden Sie aufgefordert, eine Passphrase einzugeben. Drücken Sie die Eingabetaste, um dieses Feld leer zu lassen, und wiederholen Sie es, wenn Sie zur Bestätigung aufgefordert werden. Der nächste Schritt besteht darin, die öffentliche Schlüsseldatei auf Ihren Remote-Computer zu kopieren. Sie können dazu scp verwenden:

keygen 2

Anzeige

Das Ziel für Ihren öffentlichen Schlüssel befindet sich auf dem Remote-Server in der folgenden Datei:

~/.ssh/authorized_keys2

Nachfolgende öffentliche Schlüssel können an diese Datei angehängt werden, ähnlich wie die Datei ~/.ssh/known_hosts. Das bedeutet, dass Sie, wenn Sie einen weiteren öffentlichen Schlüssel für Ihr Konto auf diesem Server hinzufügen möchten, den Inhalt der zweiten Datei id_rsa.pub in eine neue Zeile in der vorhandenen Datei authorised_keys2 kopieren würden.

VERBUNDEN: Was ist eine PEM-Datei und wie wird sie verwendet?

Sicherheitsüberlegungen

Ist das nicht weniger sicher als ein Passwort?

Praktisch gesehen eher nicht. Der generierte private Schlüssel wird auf dem von Ihnen verwendeten Computer gespeichert und nie übertragen, auch nicht zur Überprüfung. Dieser private Schlüssel stimmt NUR mit diesem EINEN öffentlichen Schlüssel überein, und die Verbindung muss von dem Computer aus gestartet werden, der den privaten Schlüssel hat. RSA ist ziemlich sicher und verwendet standardmäßig eine Länge von 2048 Bit.

Theoretisch ist es ziemlich ähnlich wie bei der Verwendung Ihres Passworts. Wenn jemand Ihr Passwort kennt, geht Ihre Sicherheit aus dem Fenster. Wenn jemand über Ihre private Schlüsseldatei verfügt, geht die Sicherheit für jeden Computer verloren, der über den passenden öffentlichen Schlüssel verfügt, aber er benötigt Zugriff auf Ihren Computer, um ihn abzurufen.

Kann das sicherer sein?

Sie können ein Kennwort mit Schlüsseldateien kombinieren. Befolgen Sie die obigen Schritte, aber geben Sie eine starke Passphrase ein. Wenn Sie sich jetzt über SSH verbinden oder SCP verwenden, benötigen Sie die richtige private Schlüsseldatei ebenso gut wie die richtige Passphrase.

Sobald Sie Ihre Passphrase einmal eingegeben haben, werden Sie nicht erneut danach gefragt, bis Sie Ihre Sitzung schließen. Das bedeutet, dass Sie beim ersten SSH/SCP-Vorgang Ihr Passwort eingeben müssen, aber für alle nachfolgenden Aktionen ist es nicht erforderlich. Sobald Sie sich von Ihrem Computer (nicht dem Remote-Computer) abmelden oder Ihr Terminalfenster schließen, müssen Sie es erneut eingeben. Auf diese Weise opfern Sie nicht wirklich die Sicherheit, werden aber auch nicht ständig nach Passwörtern belästigt.

Kann ich das öffentliche/private Schlüsselpaar wiederverwenden?

Anzeige

Das ist eine wirklich schlechte Idee. Wenn jemand Ihr Passwort findet und Sie dasselbe Passwort für alle Ihre Konten verwenden, hat er jetzt Zugriff auf alle diese Konten. Ebenso ist Ihre private Schlüsseldatei auch supergeheim und wichtig. (Weitere Informationen finden Sie unter Wiederherstellen, nachdem Ihr E-Mail-Passwort kompromittiert wurde )

Am besten erstellen Sie für jeden Computer und jedes Konto, das Sie verknüpfen möchten, neue Schlüsselpaare. Auf diese Weise kompromittieren Sie nur ein Konto auf einem Remote-Computer, wenn einer Ihrer privaten Schlüssel irgendwie abgefangen wird.

Es ist auch sehr wichtig zu beachten, dass alle Ihre privaten Schlüssel am selben Ort gespeichert sind: in ~/.ssh/ auf Ihrem Computer können Sie Verwenden Sie TrueCrypt um einen sicheren, verschlüsselten Container zu erstellen, dann Symlinks erstellen in Ihrem ~/.ssh/-Verzeichnis. Je nachdem, was ich tue, benutze ich dassuper-paranoidsupersichere Methode, um mich zu beruhigen.


Haben Sie SCP in irgendwelchen Skripten verwendet? Verwenden Sie Schlüsseldateien anstelle von Passwörtern? Teile deine eigene Expertise mit anderen Lesern in den Kommentaren!

WEITER LESEN

Interessante Artikel