"SocketException: Could not resolve host" 使用 SSH.NET 连接到 SFTP 服务器时

"SocketException: Could not resolve host" when connecting to SFTP server with SSH.NET

正在尝试将文件上传到本地的 SFTP 服务器。连接 SFTP 时遇到错误。

System.Net.Sockets.SocketException: Could not resolve host 'sftp://localhost'

我试过使用命令行和 FileZilla 进行连接。可以连接。

string host = "sftp://localhost";
int port = 22;
string username = "gth";
string password = "1234";
using (SftpClient client = new SftpClient(host, port, username, password))
{
    client.Connect();
}

下面显示错误:

Loaded assembly: System.Threading.Tasks.dll [External] 
Thread started: <Thread Pool> #4
Thread started: <Thread Pool> #5
Thread started: <Thread Pool> #6
Thread started: <Thread Pool> #7
Unhandled Exception:
01-09 11:47:25.081 E/mono    (12159): 
01-09 11:47:25.081 E/mono    (12159): Unhandled Exception:
01-09 11:47:25.081 E/mono    (12159): System.Net.Sockets.SocketException (0x80004005): Connection refused
01-09 11:47:25.081 E/mono    (12159):   at (wrapper dynamic-method) System.Object.5(intptr,intptr,intptr)
01-09 11:47:25.081 E/mono-rt (12159): [ERROR] FATAL UNHANDLED EXCEPTION: System.Net.Sockets.SocketException (0x80004005): Connection refused
01-09 11:47:25.081 E/mono-rt (12159):   at (wrapper dynamic-method) System.Object.5(intptr,intptr,intptr)
01-09 11:47:25.099 E/CameraBase(12159): SCANNING dlclose for instance 0x437bbb5ee79d6b9f
01-09 11:47:25.100 E/CameraBase(12159): SCANNING AFTER DLCLOSE

SftpClient 构造函数的 host 参数采用 hostname,而不是 URL。

所以只需删除 sftp://:

host = "localhost";

或使用 127.0.0.1 代替本地主机