如何使用密码设置公钥文件和私钥文件。我还需要接受连接 sftp 发送的指纹。我正在使用 Tamir.SharpSsh 源。是否可以将其合并到源代码中?请建议。
问问题
3451 次
1 回答
2
我已成功使用SSH.NET开源库来处理 SFTP。您可以查看此要点以获取有关创建文件夹、上传等的更多代码。
这是使用密钥文件 + 密码连接到 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++ 中打开密钥文件,它的第一行必须有“BEGIN RSA PRIVATE KEY”。
如果没有,则使用 puttygen 将您的私钥文件转换为 OpenSSH 格式。
- 在 puttygen 中打开私钥
- 转到转换菜单并选择导出 OpenSSH 密钥。
- 将该新密钥保存到文件中并使用它。
于 2017-01-30T09:11:59.027 回答