C# SFTP 没有这样的文件

C# SFTP No Such File

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

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

但是,这会在 ChangeDirectory 方法上抛出一个异常 No Such File

我对 Curl 进行了同样的尝试,但收到一条错误消息

curl: (51) SSL peer certificate or SSH remote key was not OK

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

--insecure 部分是否与 SSH.NET 库不工作的原因有关,或者是否有其他原因?有没有办法模拟 --insecure 在 C# 中的作用?

谢谢

如果其他人遇到这个问题,那么 ChangeDirectory 和 UploadFile 等任何方法都需要一个相对于 WorkingDirectory 属性 的路径。结果,我通过将其更改为

解决了我的问题
client.ChangeDirectory(@"/other_directory");

希望对别人有帮助

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

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

client.ChangeDirectory(@"/other_directory");