Il plug-in Maven Wagon può essere configurato per utilizzare una chiave privata per ssh/scp? Tutto quello che ho provato lascia ancora che Maven mi chieda una password quando arriva al punto di scp-ing.Il plug-in Maven Wagon può utilizzare una chiave privata per scp?
risposta
ho trovato le informazioni necessarie qui: http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ssh-external.html
Si dovrebbe essere in grado di specificare il percorso della chiave privata nell'elemento server nel settings.xml:
I repository per il download e La distribuzione è definita dallo
repositories
edistributionManagement
elementi di il POM. Tuttavia, alcune impostazioni come nome utente e password dovrebbero essere non distribuite insieme al pom.xml . Questo tipo di informazioni dovrebbe esistere sul server di generazione in the settings.xml.<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> ... <servers> <server> <id>server001</id> <username>my_login</username> <password>my_password</password> <privateKey>${user.home}/.ssh/id_dsa</privateKey> <passphrase>some_passphrase</passphrase> <filePermissions>664</filePermissions> <directoryPermissions>775</directoryPermissions> <configuration></configuration> </server> </servers> ... </settings>
- id: Questo è l'ID del server (non di all'utente di effettuare il login come) che corrisponde l'elemento id del repository/specchio che Maven cerca di connettersi.
- nome utente, la password: Questi elementi appaiono come una coppia che denota la login e password necessarie per l'autenticazione al server .
- PrivateKey, passphrase: Come i precedenti due elementi, questa coppia specifica un percorso ad una chiave privata (di default è
${user.home}/.ssh/id_dsa)
e una passphrase , se necessario Gli elementi passphrase e la password può essere. esternalizzate in futuro, ma per ora deve essere impostata di solo testo nel file settings.xml.- filePermissions, directoryPermissions: Quando un file o una directory di repository è creato in fase di distribuzione, queste sono le autorizzazioni da utilizzare. I valori legali di ciascuno sono un numero a tre cifre corrispondente a * nix file autorizzazioni, es. 664, o 775.
Nota: Se si utilizza una chiave privata per login al server, assicurarsi di omette l'elemento
<password>
. In caso contrario, la chiave verrà ignorata.crittografia password
Una nuova funzione - password del server e parola chiave di crittografia è stato aggiunto al 2.1.xe 3.0 tronchi. Vedere i dettagli su this page.
Pagare un particolare attenzione alla "nota": Se si utilizza una chiave privata per accedere al server, assicurarsi che si omette l'elemento <password>
. Altrimenti, la chiave verrà ignorata. Così la configurazione finale sarà vicino a:
<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>
So che questo è un vecchio thread, ma sembra che il plugin Wagon sta leggendo settings.xml (ad esempio nome utente), ma non con tutte le impostazioni. Non riuscivo a smettere di chiedere il nome utente/password Kerberos durante scp. (Sembra che a fine 2016 potrebbero esserci state modifiche al plug-in che influiscono su questo.) Basta aggiungere questa risposta nel caso in cui aiuti qualcun altro.
Per me, la soluzione era ancora più semplice: ignorare completamente utilizzando 'settings.xml' e semplicemente specificare 'scpexe' invece di 'scp' per il protocollo (come nella sezione distributionManagement di pom.xml). In questo modo viene utilizzata la configurazione SSH predefinita della macchina (impostazioni unix sotto ~/.ssh).
<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://[email protected]/dirname-to-copy-to
<toFile>file-to-upload</toFile>
</configuration>
</execution>
</executions>
</plugin>