2017-04-25 3 views
1

Je dois exécuter la commande "SCP" dans un crontab sans entrer de phrase secrète. J'ai donc créé la cléSCP sur crontab demandant toujours un mot de passe après l'échange de clés

ssh-keygen -t rsa 

ensuite transféré le fichier id_rsa.pub-host_dest.

Après, copié le contenu de id_rsa.pub à ~/.ssh/authorized_keys

$ cat id_rsa.pub >>~/.ssh/authorized_keys 
$ chmod 700 ~/.ssh/authorized_keys 

Si je tente d'effectuer une SCP, un mot de passe est toujours nécessaire.

J'ai aussi essayé d'utiliser

ssh-add ~/.ssh/id_rsa 

Mais aussi dans ce cas, je saisir le mot de passe. Une suggestion?!?

+0

Est-ce que PubkeyAuthentication est activé dans le fichier/etc/sshd_config? – TrX

+0

yep PubkeyAuthentication oui #AuthorizedKeysFile \t% h/.ssh/authorized_keys – user3472065

+0

RSAAuthentication = yes? https://security.stackexchange.com/a/71581 – TrX

Répondre

0

La phrase secrète n'est pas un mot de passe.

Votre clé est cryptée et à moins que vous ne fournissiez la phrase secrète, elle vous le demande. Cronjob n'a pas accès à votre ssh-agent qui est en cours d'exécution dans votre session. Vous avez deux options:

  • Remote the passphrase from the key - il sera moins sûr, mais plus simple à automatiser

    ssh-keygen -p -P old_passphrase -N "" -f /path/to/your.key 
    
  • Utilisez sshpass et fournissez le mot de passe pour la clé sur la ligne de commande (il est pas sûr non plus de stocker la phrase secrète en texte clair).

+0

Comment puis-je implémenter votre première suggestion? – user3472065