11
votes

Maven Maven Plugin peut-il utiliser une clé privée pour SCP?

La plug-in Maven Wagon peut-elle être configurée pour utiliser une clé privée pour SSH / SCP? Tout ce que j'ai essayé reste de feuilles de Maven à me demander un mot de passe quand il arrive au point de SCP-ING.


0 commentaires

4 Réponses :


1
votes

0 commentaires

17
votes

Vous devriez être capable de spécifier le chemin d'accès à la clé privée du serveur élément dans vos paramètres.xml:

Les référentiels de téléchargement et Le déploiement est défini par le référentiels code> et distributionManagement code> éléments de le pom. Cependant, certains paramètres comme le nom d'utilisateur et le mot de passe devraient ne pas être distribué avec le pom.xml. Ce type d'information devrait exister sur le serveur de construction dans les paramètres.xml. p>

<settings>
  ...
  <servers>
    <server>
      <id>ssh-repository</id>
      <username>your username in the remote system</username>
      <privateKey>/path/to/your/private/key</privateKey>
      <passphrase>sUp3rStr0ngP4s5wOrD</passphrase><!-- if required --> 
      <configuration>
        ...
      </configuration>
    </server>
  </servers>
  ...
</settings>
  • id fort>: c'est l'identifiant de la serveur (non de l'utilisateur de se connecter comme) qui correspond à l'élément d'identification de la référentiel / miroir que Maven essaie de Connectez-vous à. LI>
  • nom d'utilisateur strong>, mot de passe strong>: ces éléments apparaissent sous forme de paire désignant le login et le mot de passe nécessaire pour s'authentifier à cette serveur. li>
  • privékey strong>, Passphrase Strong>: Comme les deux éléments précédents, cette paire spécifie un chemin à une clé privée (par défaut est $ {user.home} /. ssh / id_dsa) code> et un la phrase secrète, si nécessaire. Les Les éléments de phrase secrète et de mot de passe peuvent être extériorisé à l'avenir, mais pour Maintenant, ils doivent être définis de texte brut dans le Fichier Paramètres.xml. Li>
  • FilePermissions strong>, DirectoryPerrissions forte>: lorsqu'un fichier de référentiel ou un répertoire est créé sur le déploiement, ce sont les autorisations à utiliser. Les valeurs juridiques de chacun est un nombre à trois chiffres Correspondant au fichier * Nix Autorisations, c'est-à-dire. 664, ou 775. LI> ul>

    Remarque: Si vous utilisez une clé privée pour Connectez-vous au serveur, assurez-vous de vous omettez le code>. Sinon, la clé sera ignorée. P>

    Cryptage de mot de passe strong> p>

    une nouvelle fonctionnalité - mot de passe du serveur et Le cryptage de la phrase secrète a été ajouté aux troncs 2.1.x et 3.0. Voir les détails sur Cette page . P> BlockQuote>

    Payer une attention particulière à la "note": Si vous utilisez une clé privée pour vous connecter au serveur, assurez-vous d'omettre l'élément code>. Sinon, la clé sera ignorée. Em> la configuration finale sera donc proche de: p> xxx pré> p>


0 commentaires

2
votes

Je sais que c'est un vieux fil, mais on dirait que le plugin wagon est la lecture des paramètres.xml (E.G. Nom d'utilisateur) mais n'utilise pas tous les paramètres. Je ne pouvais pas l'obtenir pour arrêter de demander le nom d'utilisateur / mot de passe Kerberos lors du SCP. (On dirait qu'il pourrait avoir eu des changements au plugin fin 2016 qui affectent cela.) Il suffit d'ajouter cette réponse au cas où cela aide quelqu'un d'autre.

Pour moi, la solution était encore plus simple: saute totalement à l'aide de "paramètres.xml" et spécifier simplement «SCPEXE» au lieu de «SCP» pour le protocole (comme dans la section DistributionManagement de POM.XML). Cela utilise ensuite la configuration SSH par défaut de votre machine (paramètres UNIX sous ~ / .ssh). P>

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>wagon-maven-plugin</artifactId>
  <version>1.0</version>
  <executions>
    <execution>
      <id>upload-to-server</id>
      <phase>deploy</phase>
      <goals><goal>upload-single</goal></goals>
      <configuration>
        <fromFile>file-to-upload</fromfile>
        <url>scpexe://username@serverName/dirname-to-copy-to
        <toFile>file-to-upload</toFile>
      </configuration>
    </execution>
  </executions>
</plugin>


1 commentaires

Réponse de vie! Essayé Authèle de clé privée avec le org.apache.maven.wagon: wagon-ssh sans succès. org.apache.maven.wagon: wagon-ssh-externe a travaillé comme un charme.



2
votes

Je voulais faire exactement la même chose aujourd'hui conjointement avec le Maven-Site-Plugin em> (3.9.1) et frappait également des barrages routiers (en particulier, le wagon-ssh Le plugin a insisté pour me demander que mon nom d'utilisateur et mon mot de passe Kerberos). Ce qui a finalement travaillé pour moi avec wagon-ssh- 3.4.3 strong>: xxx pré>

et dans paramètres.xml strong> em >:: P>

<server>
  <id>ssh-repository</id>
  <username>pridkdev</username>
  <privateKey>${user.home}/.ssh/pridkdev.ppk</privateKey>
  <filePermissions>664</filePermissions>
  <directoryPermissions>775</directoryPermissions>
  <configuration>
      <interactive>false</interactive>
      <strictHostKeyChecking>no</strictHostKeyChecking>
      <preferredAuthentications>publickey</preferredAuthentications>
  </configuration>
</server>


0 commentaires