我正在使用C#(.NET Assembly)开发SFTP WinSCP客户端。在我的测试环境中,我通过密码验证做到了。以下是我的会话选项:
// Setup session options
SessionOptions sessionOptions = new SessionOptions {
Protocol = Protocol.Sftp,
HostName = "example.com",
UserName = "user",
Password = "mypassword",
SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
};
但是真实环境没有用户密码。服务器管理员为公钥提供扩展名“.crt”
因此,使用此公钥如何更改我的程序(SessionOptions
)?
这个细节是否足以继续实施?
预览crt文件
答案 0 :(得分:1)
从您收到的文件的扩展名,外观和大小,我相信它是证书形式的服务器的公钥。
首先,服务器的公钥只能用于验证您连接的服务器实际上是您想要连接的服务器(即没有中间人攻击正在进行中) )。
其次,密钥的证书格式永远不会与SSH一起使用。它与TLS / SSL一起使用,例如FTPS(FTP over TLS / SSL)或HTTPS。
我说你和服务器管理员之间存在一些很大的误解。
如果您需要更多详细信息,最好在SuperUser或ServerFault上提问,因为这看起来不像编程问题。