如何通过代码隐藏C#SharpSsh将SFTP与带密码的公钥和私钥文件连接起来

时间:2014-04-02 08:17:04

标签: sharpssh

如何使用Pass-phrase设置公钥文件和私钥文件。此外,我需要接受连接sftp发送的指纹。我正在使用Tamir.SharpSsh源代码。是否可以在源中加入?请建议。

1 个答案:

答案 0 :(得分:0)

我已成功使用SSH.NET开源库来使用SFTP。您可以查看this gist了解有关创建文件夹,上传等的更多代码。

这是使用密钥文件+密码连接到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格式。

  1. 在puttygen中打开私钥
  2. 转到“转化”菜单,然后选择“导出OpenSSH密钥”。
  3. 将新密钥保存到文件中并使用它。