Bonjour,
j'utilise le package org.apache.tools.ant.taskdefs.optional.ssh
qui n'a pas l'air de fonctionner après plus de 10heures de recherche intensive.
j'ai essayé tous les cryptages possibles et imaginables pour la clé privée, rien ne marche. Et surtout aucune doc nulle part
voici mon code suivi du message d'erreur:
import org.apache.tools.ant.taskdefs.optional.ssh.*;
public class trySCP {
public static void main(String []args){
int port=22;
String scpHostUri="192.20.155.78";
String username="user";
String ppk_path="./user.ppk";
String localFilePath="./fichier_a_copier_scp.xml";
String toDir="user:@machine:/directory";
Scp scp = new Scp();
scp.init();
scp.setUsername(username);
scp.setKeyfile(ppk_path);
scp.setPort(port);
scp.setHost(scpHostUri);
scp.setFile(localFilePath);
scp.setTodir(toDir);
scp.execute();
}
}
J'obtient l'erreur suivante:
Exception in thread "main" com.jcraft.jsch.JSchException: invaid privatekey: ./user.ppk
at org.apache.tools.ant.taskdefs.optional.ssh.Scp.execute(Scp.java:129)
at trySCP.main(trySCP.java:29)
Caused by: com.jcraft.jsch.JSchException: invaid privatekey: ./user.ppk
at com.jcraft.jsch.IdentityFile.<init>(Unknown Source)
at com.jcraft.jsch.JSch.addIdentity(Unknown Source)
at com.jcraft.jsch.JSch.addIdentity(Unknown Source)
at org.apache.tools.ant.taskdefs.optional.ssh.SSHBase.openSession(SSHBase.java:156)
at org.apache.tools.ant.taskdefs.optional.ssh.Scp.upload(Scp.java:190)
at org.apache.tools.ant.taskdefs.optional.ssh.Scp.execute(Scp.java:118)
... 1 more
Identity: com.jcraft.jsch.JSchException: invaid privatekey: ./user.ppk
--- Nested Exception ---
com.jcraft.jsch.JSchException: invaid privatekey: ./user.ppk
at com.jcraft.jsch.IdentityFile.<init>(Unknown Source)
at com.jcraft.jsch.JSch.addIdentity(Unknown Source)
at com.jcraft.jsch.JSch.addIdentity(Unknown Source)
at org.apache.tools.ant.taskdefs.optional.ssh.SSHBase.openSession(SSHBase.java:156)
at org.apache.tools.ant.taskdefs.optional.ssh.Scp.upload(Scp.java:190)
at org.apache.tools.ant.taskdefs.optional.ssh.Scp.execute(Scp.java:118)
at trySCP.main(trySCP.java:29)
Mon fichier ppk fonctionne tres bien sous putty.
Comment faire pour copier un fichier à distance de windows vers linux en utilisant un scp acceptant les fichiers de clé privées?Quel package utiliser?
Si vous avez un exemple ca serait vraiment génial. et l'encodage du fichier autorisé
merci par avance pour votre aide
Partager