web-dev-qa-db-fra.com

Utiliser les informations d'identification ssh dans le pipeline jenkins avec ssh, scp ou sftp

Je veux utiliser scp/ssh pour télécharger des fichiers sur un serveur. Je découvre que je dois utiliser l'authentification par certificat, mais la question est de savoir comment? Vraiment, ce que je veux faire, c'est utiliser le même type d'informations d'identification que j'utilise avec le certificat ssh avec mot de passe stocké dans Jenkins. Cependant, je ne peux pas savoir comment - le générateur d'extraits n'a pas d'option évidente pour cela.

Que font les autres? Y a-t-il une fonctionnalité non documentée qui ferait cela?

11
johnfo

Si vous installez le plugin SSH Agent vous pouvez utiliser le ssh-agent étape de pipeline pour exécuter un script Shell avec un agent ssh actif. Le ssh-agent prend un identifiant Jenkins (un certificat ssh avec mot de passe, comme celui que vous avez pour git).

10
Joep Weijers
    withCredentials([sshUserPrivateKey(credentialsId: "yourkeyid", keyFileVariable: 'keyfile')]) {
       stage('scp-f/b') {
        sh "scp -i ${keyfile} do sth here"
       }
   }

C'est peut-être ce que tu veux. Installer Credentials Plugin et
Credentials Binding Plugin. Ajoutez des informations d'identification et vous obtiendrez "yourkeyid", liez ces informations d'identification à keyFileVariable, passwordVariable etc.

Plus de détails et de documentation peuvent être trouvés sur le site Github du plugin Jenkins Credentials Binding Plugin , Credentials Plugin , SSH Pipeline Steps plugin

26
tianzhipeng