SCP d'un serveur à un autre sans invite de mot de passe

19

Quelle est la meilleure façon de faire scpd'une boîte à l'autre sans demander de mot de passe?

Il y a deux serveurs:

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

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

Si je souhaite transférer les fichiers à scppartir du serveur A vers le serveur B sans être invité à entrer un mot de passe

[exécutant cela à partir du serveur A, /home/oracle/export/]

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

Cela me demanderait un mot de passe lors de la saisie de la commande.

Je comprends qu'un keygen doit être généré et copié sur le serveur A. Ainsi [sur le serveur A]:

ssh-keygen -t rsa

Cela me donne deux fichiers stockés dans /home/oracle/.ssh:

id_rsa
id_rsa.pub

1. Suis-je censé copier les deux fichiers ( id_rsa, id_rsa.pub) sur le serveur B /home/oracle/.ssh?

Tout en effectuant une recherche Google à ce sujet, certains articles ont mentionné l'ajout / la concaténation de ceci à authorized_keys.

2. Suis-je censé créer ce fichier par moi-même?

Je semble confus quant à la bonne façon de procéder.

Btw, les deux serveurs exécutent Suse Linux Enterprise Edition 9 ...

jimmij
la source
1
Essayez le `` trousseau '': gentoo.org/proj/en/keychain

Réponses:

16
  1. Non, tu restes id_rsapour toi; cependant, id_rsa.pubqui est votre clé publique, peut être copiée sur les serveurs auxquels vous souhaitez avoir accès. Les concaténer à la fin de ~/.ssh/authorized_keys.
  2. Oui, vous pouvez créer ~/.ssh/authorized_keyssi ce n'est déjà fait; sinon, ajoutez simplement à la fin du fichier, en utilisant cat id_rsa.pub >>~/.ssh/authorized_keys.
mipadi
la source
11

Il existe également un outil qui trie tout cela pour vous ssh-copy-id.

Il ajoutera la clé dans votre agent si vous en avez une en cours d'exécution dans le authorized_keysfichier et la créera si elle n'existe pas avec les autorisations appropriées. Si vous n'exécutez pas d'agent, vous pouvez spécifier la clé à utiliser avec -i:ssh-copy-id -i ~/.ssh/id_rsa

Mauilion
la source
5

Vous devez également vérifier les autorisations sur les différents fichiers et répertoires:

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

Votre répertoire personnel ne doit pas être accessible en écriture par une personne autre que vous.

dr-jan
la source
0

Dans le cas où vous configurez la clé générée à partir de ssh-keygenmais que le transfert sans mot de passe ne fonctionne pas, vérifiez la clé publique utilisée sur la machine source en mode verbeux comme ci-dessous:

sftp -v -oPort=22 userid@server

Habituellement, il fait référence à une clé publique /home/<user>/.ssh/id_rsa.pub qui peut être différente de celle que vous avez générée à l'aide ssh-keygen. Vous devez l'ajouter id_rsa.pubau serveur de destination.

Raj
la source
0

Je ferais ce qui suit:

Sur le client:

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

Cela copie la clé du client vers le serveur. Vous aurez besoin du mot de passe du serveur pour lui faire ajouter votre clé à son anneau.

  • L'authentification par mot de passe doit être activée ou vous devez remettre le fichier de clés au serveur.

Sur le serveur:

Je voudrais au moins varier, désactiver l'authentification par mot de passe.

Michael Prokopec
la source