代码之家  ›  专栏  ›  技术社区  ›  jinsungy

使用Tamir时出现SSH/SFTP连接问题。SharpShh

  •  5
  • jinsungy  · 技术社区  · 16 年前

    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;
                }
            }
    

    有人知道我的问题是什么吗?也许这与将密钥添加到SSH缓存有关?如果是这样,我该怎么做?

    我最终使用了以下代码。注意,StrictHostKeyChecking被关闭是为了让事情更容易。

                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;
                }
    

    谢谢。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Bruce Blackshaw    16 年前

    我用塔米尔。SharpSH-最新版本1.1.1.13

    此处快速示例:

    127.0.0.1-服务器IP

    /SFTPFolder1/SFTPFolder2-我希望文件存放的服务器位置

            Sftp sftpClient = new Sftp("127.0.0.1", "myuserName", "MyPassword");
    
            sftpClient.Connect();
    
            sftpClient.Put(@"C:\Local\LocalFile.txt", "/SFTPFolder1/SFTPFolder2");
    

    如果你有任何问题,请告诉我。

        2
  •  6
  •   Jeganinfo    16 年前

    但是请记住,SCP不是SFTP——它们是在SSH上运行的完全不同的协议。您的SFTP可能实际上不支持SCP,并非所有SFTP服务器都支持。CoreFTP可能正在使用SFTP。

    我们的商业套餐, edtFTPnet/PRO