SSH / SFTP problème de connexion à l'aide de Tamir.SharpSsh

C'est mon code pour vous connecter et envoyer un fichier à distance à un serveur SFTP.

public static void SendDocument(string fileName, string host, string remoteFile, string user, string password)
        {            
            Scp scp = new Scp();

            scp.OnConnecting += new FileTansferEvent(scp_OnConnecting);
            scp.OnStart += new FileTansferEvent(scp_OnProgress);
            scp.OnEnd += new FileTansferEvent(scp_OnEnd);
            scp.OnProgress += new FileTansferEvent(scp_OnProgress);

            try
            {
                scp.To(fileName, host, remoteFile, user, password);
            }
            catch (Exception e)
            {
                throw e;
            }
        }

Je peux réussir à se connecter, envoyer et recevoir des fichiers à l'aide de CoreFTP. Ainsi, la question n'est pas avec le serveur. Lorsque j'exécute le code ci-dessus, le processus semble s'arrêter à la scp.À la méthode. Il se bloque indéfiniment.

Quelqu'un sait ce que peut mon problème? Peut-être qu'il a quelque chose à voir avec l'ajout de la clé de la SSH Cache? Si oui, comment pourrais-je aller à ce sujet?

EDIT: j'ai inspecté les paquets à l'aide de wireshark et découvert que mon ordinateur n'est pas l'exécution de l'échange de clés Diffie-Hellman Init. Ce doit être la question.

EDIT: j'ai fini par utiliser le code suivant. Remarque, le StrictHostKeyChecking a été désactivée pour rendre les choses plus facile.

            JSch jsch = new JSch();
            jsch.setKnownHosts(host);

            Session session = jsch.getSession(user, host, 22);
            session.setPassword(password);

            System.Collections.Hashtable hashConfig = new System.Collections.Hashtable();
            hashConfig.Add("StrictHostKeyChecking", "no");
            session.setConfig(hashConfig);

            try
            {
                session.connect();

                Channel channel = session.openChannel("sftp");
                channel.connect();
                ChannelSftp c = (ChannelSftp)channel;

                c.put(fileName, remoteFile);

                c.exit();            
            }
            catch (Exception e)
            {
                throw e;
            }

Grâce.

Avez-vous essayé de regarder le trafic avec WireShark? il serait intéressant de voir si la demande même jamais réussi à s'en sortir.
essayez de faire manuellement la connexion avec quelque chose comme pscp (par les créateurs de Mastic) et voir ce qui se passe.
J'ai inspecté les paquets et découvert qu'il s'arrête juste avant l'échange de clés Diffie-Hellman Init..

OriginalL'auteur jinsungy | 2009-10-16