xml - que - Cómo implementar a través de SCP con clave privada usando Maven
maven tutorial español (1)
Usando Maven en Windows, transfiera a través de SCP, usando una clave privada. Parece ser un proceso muy simple y documentado. Pero no funcionó para mí.
En settings.xml
<server>
<id>myserver</id>
<username>me</username>
<privateKey>C:/data/home/.ssh/id_rsa</privateKey>
</server>
En el pom.xml
<distributionManagement>
<repository>
<id>myserver</id>
<url>scp://myserver.domain.com/~me/deploy</url>
</repository>
</distributionManagement>
<build>
<extensions>
<!-- Enabling the use of FTP -->
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.8</version>
</extension>
</extensions>
</build>
La expectativa es que no debería venir a pedirme una contraseña para iniciar sesión. También tenga en cuenta que no quiero utilizar un comando externo para que funcione de manera uniforme en todas las plataformas. Sin embargo ...
--- maven-deploy-plugin:2.7:deploy (default-deploy) @ sparksample ---
Downloading: scp://myserver.domain.com/~me/deploy/com/domain/myproject/1.0-SNAPSHOT/maven-metadata.xml
The authenticity of host ''myserver.domain.com'' can''t be established.
RSA key fingerprint is 01:01:01:01:01:01:01:01:01:01:01:01:01:01:01:ff.
Are you sure you want to continue connecting? (yes/no): yes
: Password for [email protected]:
No solo me pide una contraseña, también me obliga cada vez a aceptar la clave de host. Sin embargo, retiró el archivo settings.xml, ya que está usando el nombre de usuario correcto para conectarse.
Entonces, ¿cómo evito que me pregunte la contraseña y uso la clave privada proporcionada? Tenga en cuenta que pude hacer esto con éxito con una tarea ant scp, utilizando exactamente el mismo archivo de clave privada.
Los privilegios de lectura / escritura deben configurarse correctamente
# Current directory should not be writable by others (and preferably not by group either):
chmod o-w ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
# Only in case id_rsa.pub exists (644 also ok):
chmod 640 ~/.ssh/id_rsa.pub
chmod 640 ~/.ssh/authorized_keys
La propiedad debe establecerse correctamente
Establecer en usuario actual y grupo predeterminado. Al omitir el grupo después de los dos puntos, se asegura de que el grupo se restablezca a los valores predeterminados para ese usuario.
chown ${USER}: ~
chown -R ${USER}: ~/.ssh