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.
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
Vous devez vous connecter pour publier un commentaire.
Sans regarder vos fichiers de log, il est difficile de dire ce qu'est la question.
Cependant, gardez à l'esprit que la SCP n'est pas SFTP - ils sont complètement différents protocoles qui fonctionnent sur SSH. Il est possible que votre SFTP n'est pas réellement le soutien de SCP - pas tous les serveurs SFTP faire. CoreFTP peut-être en utilisant le protocole SFTP.
Notre offre commerciale, edtFTPnet/PRO, peut également être la peine d'essayer, si seulement comme une alternative à essayer d'obtenir un autre client de travail à l'encontre de votre serveur.
OriginalL'auteur Bruce Blackshaw
- Je utiliser Tamir.SharpSSH - dernière version 1.1.1.13
Cela a une classe SFTP. Vous pouvez utiliser cette classe à faire directement SFTP au lieu d'utiliser JSch, classe Session.
Rapide de l'Échantillon ici:
127.0.0.1 - IP du Serveur
/SFTPFolder1/SFTPFolder2 - Emplacement du Serveur Où je veux mes fichiers pour aller
Laissez-moi savoir si vous avez des questions.
je les ai converti en fichier de clé privée PuttyKey format format OpenSSH à l'aide de "Puttykeygen.exe" les Conversions->Export OpenSSH Clé. Merci
OriginalL'auteur Jeganinfo