5

我正在使用SSH.NET 库连接到远程 SFTP 服务器。我正在尝试使用非常基本的代码,但它不起作用

using (var client = new SftpClient(host, username, password))
{
    client.Connect();   
    client.ChangeDirectory(@"sftp://server.example.com/other_directory");
}

No Such File但是,这会在ChangeDirectory方法上引发异常。

我对 Curl 进行了同样的尝试,但出现错误提示

curl: (51) SSL 对等证书或 SSH 远程密钥不正确

但是,我添加了 curl 的--insecure参数并且一切正常。

--insecure部分是否与SSH.NET图书馆无法正常工作的原因有关,还是有其他原因?有没有办法模拟--insecureC# 中的功能?

谢谢

4

2 回答 2

7

如果其他人遇到此问题,则事实证明 ChangeDirectory 和 UploadFile 等任何方法都需要相对于该WorkingDirectory属性的路径。结果,我通过将其更改为解决了我的问题

client.ChangeDirectory(@"/other_directory");

希望对其他人有所帮助

于 2016-04-01T12:24:05.540 回答
0

在我的情况下,问题是用户“用户名”的权限。var client = new SftpClient(主机、用户名、密码)

因此,用户“用户名”必须对文件夹 other_directory 具有必要的权限,以下代码才能正常工作。

client.ChangeDirectory(@"/other_directory");
于 2021-03-20T11:36:19.073 回答