如何使用密码设置公钥文件和私钥文件。我还需要接受连接 sftp 发送的指纹。我正在使用 Tamir.SharpSsh 源。是否可以将其合并到源中?请建议。
最佳答案
我已成功使用 SSH.NET与 SFTP 配合使用的开源库。您可以看到this gist有关创建文件夹、上传等的更多代码。
这是使用 key 文件 + 密码连接到 SFTP 的代码。
public void Connect(string host, int port, string user, string passPhrase, string privateKeyFilePath) {
var keyFiles = new[] { new PrivateKeyFile(privateKeyFilePath, passPhrase) };
var methods = new List<AuthenticationMethod>();
methods.Add(new PasswordAuthenticationMethod(user, passPhrase));
methods.Add(new PrivateKeyAuthenticationMethod(user, keyFiles));
var con = new ConnectionInfo(host, port, user, methods.ToArray());
var client = new SftpClient(con);
client.Connect();
// .....
client.Disconnect();
}
私钥文件格式
请注意,您的私钥文件必须采用 OpenSSH 格式。如果您在 Notepad++ 中打开 key 文件,第一行必须有“BEGIN RSA PRIVATE KEY”。
如果没有,则使用 puttygen 将您的私钥文件转换为 OpenSSH 格式。
- 在puttygen中打开私钥
- 转至“转换”菜单并选择“导出 OpenSSH key ”。
- 将新 key 保存到文件中并使用它。
关于sharpssh - 如何通过 C# SharpSsh 代码隐藏使用公钥和带密码的私钥文件连接 SFTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22805395/