SCPClient de Ganymed SSH2

Signaler
Messages postés
129
Date d'inscription
jeudi 30 mars 2006
Statut
Membre
Dernière intervention
2 décembre 2012
-
Messages postés
1
Date d'inscription
vendredi 9 janvier 2009
Statut
Membre
Dernière intervention
2 septembre 2010
-
Salut,
j'ai deux machines windows PC1,PC2 connectés en reseau. PC1 possede un serveur SSH(openssh for windows), et dans PC2 j'ai develope cette classe:
Mon besoin de cette classe est d'envoyer le fichier

a.txt qui existe sous C:\\ de PC2 vers D:\\ de PC1.


import java.io.*;
import ch.ethz.ssh2.*;

public class Basic
{
    public static void main(String[] args)
    {
        String hostname = "134.123.100.3";
        String username = "alias";
        String password = "alias";

        try
        {    
            //Creer une instance de la connexion
            Connection conn = new Connection(hostname);

            conn.connect();

            boolean isAuthenticated = conn.authenticateWithPassword(username, password);

            if (isAuthenticated == false)
                throw new IOException("Authentication failed.");

            SCPClient C=new SCPClient(conn);
            C.put("C:\\a.txt", "D:\");        

            //Creer une session

            Session sess = conn.openSession();
            sess.execCommand("");
            System.out.println("Here is some information about the remote host:");
            InputStream stdout = new StreamGobbler(sess.getStdout());
            BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
            while (true)
            {
                String line = br.readLine();
                if (line == null)
                    break;
                System.out.println(line);
            }
        
            /* Show exit status, if available (otherwise "null") */

            System.out.println("ExitCode: " + sess.getExitStatus());

            sess.close();            //* Close this session

            conn.close();            //* Close the connection */
        }
        catch (IOException e)
        {
            e.printStackTrace(System.err);
            System.exit(2);
        }
    }
}

Mais il m'affiche java.io.IOException: Error during SCP transfer.
    at ch.ethz.ssh2.SCPClient.put(SCPClient.java:575)
    at ch.ethz.ssh2.SCPClient.put(SCPClient.java:533)
    at ch.ethz.ssh2.SCPClient.put(SCPClient.java:394)

Est ce que SCP ne fonctionne pas entre deux machines windows?? C'est vraiment bizzare,car j'ai la teste avec machine linux et sa marche la copie pourquoi avec windows non???

5 réponses

Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,

tu oublie de mettre la suite de l'exception :

java.io.IOException: Error during SCP transfer.
at ch.ethz.ssh2.SCPClient.put(SCPClient.java:575)
at ch.ethz.ssh2.SCPClient.put(SCPClient.java:533)
at ch.ethz.ssh2.SCPClient.put(SCPClient.java:394)
at Basic.main(Basic.java:41)
Caused by: java.io.IOException: Remote scp terminated with error (scp: C: /test.sh: No such file or directory).
at ch.ethz.ssh2.SCPClient.readResponse(SCPClient.java:59)
at ch.ethz.ssh2.SCPClient.sendFiles(SCPClient.java:182)
at ch.ethz.ssh2.SCPClient.put(SCPClient.java:571)
... 3 more

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
129
Date d'inscription
jeudi 30 mars 2006
Statut
Membre
Dernière intervention
2 décembre 2012

non, j'ai changer les parametres mais le fichier a.txt existe bien sous C:\ de la machine qui a le code Basic.java et je veux le mettre dans le disque D:\ de machine qui a serveur ssh.

C'est vraiment bizarre ; Qu'est ce que je dois faire!!!
Messages postés
129
Date d'inscription
jeudi 30 mars 2006
Statut
Membre
Dernière intervention
2 décembre 2012

Salut,
J'ai change dans le code:

 SCPClient C=new SCPClient(conn);

 C.put("C:\\a.txt", "D:");    

et comme ca la copie est réalise dans la machine PC1. Mais si je veux le mettre sous un dossier:

SCPClient C=new SCPClient(conn);

 C.put("C:\\a.txt", "D:\\dossier");

et le dossier existe sous D. La copie ne se realise pas!!!

C'est vraiment bizarre ...Est ce qu'il ya quelqun a une idee!!!
Merci
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,

désolé mais perso je n'ai pas d'idée de plus je n'utilise l'api qu'entre des machines linux et je n'ai rencontré aucun de tes problèmes donc ....

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
1
Date d'inscription
vendredi 9 janvier 2009
Statut
Membre
Dernière intervention
2 septembre 2010

[^^sad1][^^sad1]