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 oracle@10.152.2.11:/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 ...


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.

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


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.


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.


0

Je ferais ce qui suit:

Sur le client:

ssh-keygen -t rsa
ssh-copy-id oracle@10.152.2.11

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.