SCP von einem Server zu einem anderen ohne Passwortabfrage

19

Was ist der beste Weg, um scpvon einer Box zur anderen zu wechseln, ohne nach dem Passwort zu fragen?

Es gibt zwei Server:

  • Server A (10.152.2.10): /home/oracle/export/files.txt

  • Server B (10.152.2.11): /home/oracle/import/

Wenn ich die Dateien mit scpvon Server A auf Server B übertragen möchte, ohne zur Eingabe eines Kennworts aufgefordert zu werden

[Ausführen von Server A /home/oracle/export/]

scp files.txt [email protected]:/home/oracle/import

Dies würde mich bei der Eingabe des Befehls zur Eingabe eines Passworts auffordern.

Ich verstehe, dass ein Keygen generiert und auf Server A kopiert werden muss. Also [auf Server A]:

ssh-keygen -t rsa

Dies gibt mir zwei Dateien gespeichert in /home/oracle/.ssh:

id_rsa
id_rsa.pub

1. Soll ich die beiden Dateien ( id_rsa, id_rsa.pub) auf Server B kopieren /home/oracle/.ssh?

Während der Google-Suche wurden einige Artikel zum Anhängen / Verketten an authorized_keys erwähnt.

2. Soll ich diese Datei selbst erstellen?

Ich scheine verwirrt darüber zu sein, was der richtige Weg ist, um dies zu tun.

Übrigens laufen auf den beiden Servern Suse Linux Enterprise Edition 9 ...

jimmij
quelle
1
Versuchen Sie 'keychain': gentoo.org/proj/en/keychain

Antworten:

16
  1. Nein, Sie bleiben id_rsafür sich. Dieser id_rsa.puböffentliche Schlüssel kann jedoch auf Server kopiert werden, auf die Sie Zugriff haben möchten. Verketten Sie sie bis zum Ende von ~/.ssh/authorized_keys.
  2. Ja, Sie können erstellen, ~/.ssh/authorized_keyswenn es nicht bereits erstellt wurde. Ansonsten hängen Sie einfach mit an das Ende der Datei an cat id_rsa.pub >>~/.ssh/authorized_keys.
mipadi
quelle
11

Es gibt auch ein Tool, das all dies für Sie sortiert ssh-copy-id.

Der Schlüssel in Ihrem Agenten wird angehängt, wenn einer in der authorized_keysDatei ausgeführt wird, und erstellt, wenn er nicht mit den richtigen Berechtigungen vorhanden ist. Wenn Sie keinen Agenten ausführen, können Sie den Schlüssel angeben, mit dem gedrückt werden soll -i:ssh-copy-id -i ~/.ssh/id_rsa

Mauilion
quelle
5

Sie sollten auch die Berechtigungen für die verschiedenen Dateien und Verzeichnisse überprüfen:

authorized_keys needs perms of 600 (chmod 600 authorized_keys)
the .ssh directory should be 700
your home directory should be at most 744

Ihr Home-Verzeichnis darf nur von Ihnen selbst beschrieben werden.

dr-jan
quelle
0

Wenn Sie den Schlüssel konfigurieren, der von der ssh-keygenÜbertragung ohne Kennwort generiert wurde , jedoch nicht funktioniert, überprüfen Sie den auf dem Quellcomputer im ausführlichen Modus verwendeten öffentlichen Schlüssel wie folgt:

sftp -v -oPort=22 userid@server

Normalerweise bezieht es sich auf einen öffentlichen Schlüssel, /home/<user>/.ssh/id_rsa.pub der sich möglicherweise von dem unterscheidet, den Sie mit generiert haben ssh-keygen. Sie müssen dies id_rsa.pubauf dem Zielserver hinzufügen .

Raj
quelle
0

Ich würde folgendes tun:

Auf dem Client:

ssh-keygen -t rsa
ssh-copy-id [email protected]

Dadurch wird der Schlüssel vom Client auf den Server kopiert. Sie benötigen das Kennwort des Servers, damit er Ihren Schlüssel zu seinem Ring hinzufügt.

  • Die Kennwortauthentifizierung muss entweder aktiviert sein oder Sie müssen die Schlüsseldatei an den Server übergeben.

Auf dem Server:

Ich würde zumindest die Kennwortauthentifizierung deaktivieren.

Michael Prokopec
quelle