Connexion a un serveur sftp

cs_salim81 Messages postés 78 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 26 septembre 2007 - 5 févr. 2007 à 17:52
cs_salim81 Messages postés 78 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 26 septembre 2007 - 12 févr. 2007 à 10:33
bonjour,

j'arrive pas a se connecter a un serveur sftp via java.j'ai l'exception suivante:
Problem encoured while connecting to the serveur xxxx : com.jcraft.jsch.JSchException: Auth cancel

mon code java est:

private Vector downloadFiles(Vector Files) {


 

        Vector newCollectedFiles = new Vector(_nbMaxFiles);


 

        try { 


            String url = "sftp://" + _serveur.getIPAddress();


            Fm fm = Fm.getFileManager(url, false);


            String password = _serveur.getPwd();


            String decryptedPassword = decryptPassword(password);


           
fm.connect(_serveur.getLogin(),
decryptedPassword.replaceAll("\\W+","")); 


            String remoteDir = "";


            buildImportedFileList(fm, remoteDir, Files,


                    newCollectedFiles);


            fm.disconnect();


        }


        catch (Exception e) {


            logger.warn("Problem encoured while connecting to the serveur "


                    + _serveur.getHostname(), e);


           
System.err.println("Problem encoured while connecting to the serveur "+
_serveur.getHostname()+" : "+e);


        }


        return newCollectedFiles;


    }


quelqu'un pourra me donner une indication?

merci

5 réponses

JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
5 févr. 2007 à 18:57
ajoute ceci :

System.err.println("Problem encoured while connecting to the serveur "+ _serveur.getHostname()+" : "+e);
e.printStackTrace();
Pour savoir à qu'elle ligne ca plante. personnellement je penche pour ton remoteDir "" , essai avec remoteDir "." mais ce n'est qu'une intuition ;)
JB...
0
cs_salim81 Messages postés 78 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 26 septembre 2007
6 févr. 2007 à 10:23
il genere l'exception suivant:

com.jcraft.jsch.JSchException: Auth cancel

        at com.jcraft.jsch.Session.connect(Unknown Source)

        at com.jcraft.jsch.Session.connect(Unknown Source)

        at maclasse.Maclasse.downloadFiles(Maclasse.java:370)

       

ca plante dans la ligne :

fm.connect(_serveur.getLogin(), decryptedPassword.replaceAll("\\W+",""));

je sais pas s'il me manque quelque chose!
0
JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
6 févr. 2007 à 12:00
essaie en mettant ton Password en dur à la place de decryptedPassword.replaceAll("\\W+","") pour voir si ca ne viendrait pas tout simplement de là.

JB...
0
cs_salim81 Messages postés 78 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 26 septembre 2007
7 févr. 2007 à 18:32
j'ai mis le passord en dur à la place de decryptedPassword.replaceAll("\\W+","") mais ça marche pas!

mais ce que j'ai pas compris si que si je donne comme parametre un password qui est <=8 il execute l'instruction:

fm.connect(_serveur.getLogin(),
decryptedPassword.replaceAll("\\W+","")) et si je donne un password qui
depasse 8 caractere il ne l'execute pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_salim81 Messages postés 78 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 26 septembre 2007
12 févr. 2007 à 10:33
bonjour;

j'ai la methode ci-dessous qui fait la connexion a un serveur sftp


public void connect(final String login, final String password)


            throws Exception {


        JSch jsch = new JSch();


        jsch.setKnownHosts(Config.etlDirectory + "/ssh/knownHosts");


        Session session = jsch.getSession(login, _host, 22);


        UserInfo ui = new UserInfo() {


 

            public String getPassphrase() {


                logger.debug("getPassphrase");


                return null;


            }


 

            public String getPassword() {


                logger.debug("getPassword");


                return password;


            }


 

            public boolean promptPassword(String message) {


                logger.debug("promptPassword");


                return false;


            }


 

            public boolean promptPassphrase(String message) {


                logger.debug("promptPassphrase " + message);


                return false;


            }


 

            public boolean promptYesNo(String message) {


                logger.debug("promptYesNo " + message);


                return true;


            }


 

            public void showMessage(String message) {


                logger.debug("message : " + message);


 

            }


        };


        session.setUserInfo(ui);


        session.setPassword(password);


        Hashtable config = new Hashtable();


        config.put("compression.s2c", "zlib,none");


        config.put("StrictHostKeyChecking", "no");


        session.setConfig(config);


        session.connect();


        Channel channel = session.openChannel("sftp");


        channel.connect();


        _channel = (ChannelSftp) channel;


 

        java.io.InputStream in = System.in;


        java.io.PrintStream out = System.out;


 

        // go to the right directory


        logger.info("url : " + _url);


        int indexOfSlash = _url.indexOf("/");


        if (indexOfSlash != -1) {


            String path = _url.substring(indexOfSlash).trim();


            if (path.startsWith("//")) {


                path = path.substring(1);


            }


            logger.info("path : " + path);


            _channel.cd(path);


        }


 

        _pwd = _channel.pwd();


        logger.info("connected");


 

    }


l'execution se bloque au niveau de session.connect() .
il me genere l'exception suivant:

com.jcraft.jsch.JSchException: Auth cancel

        at com.jcraft.jsch.Session.connect(Unknown Source)

        at com.jcraft.jsch.Session.connect(Unknown Source)

        at mad.io.fm.FmSftp.connect(FmSftp.java:187)

       

quelqu'un pourra me donner une indication?

merci.
0
Rejoignez-nous