ssh服务器拒绝证书,使用SSH.NET以密钥文件连接到SFTP(权限被拒绝(publickey))...

我在Visual Studio 2008和.NET Framework 3.5中有一个C#控制台应用程序。使用SSH.NET以密钥文件连接到SFTP(权限被拒绝(publickey))

为了测试目的,我在本地机器上安装了一个FTP服务器并对其进行配置。我已经下载并安装了这个免费的小FTP服务器:freeFTPd。这很容易,需要我大约10分钟。

配置完成后,我已经使用我的C#控制台应用程序使用PasswordA u certification方法成功连接。

现在我试图只使用基于密钥的文件连接到我的本地FTP服务器。

所以我已经实现的代码如下:

var keyFile = new PrivateKeyFile(@"C:\Program Files (x86)\freeFTPd\freeftpd.key");

var keyFiles = new[] { keyFile };

var methods = new List();

methods.Add(new PrivateKeyAuthenticationMethod(username, keyFiles));

var con = new ConnectionInfo(host, port, username, methods.ToArray());

using (SftpClient client = new SftpClient(con))

{

client.Connect();

// Do some stuff below

}

正如你可以在上面的代码中看到的,我使用freeftpd.key作为私有密钥文件。该文件在安装freeFTPd后创建。在安装过程中,freeFTPd要求我创建一个新的私钥文件,所以我回答'是'。现在我正在使用它,但问题是我可以使用此私钥文件连接到我的FTP本地服务器。我已经打开这个文件,并将其与以下行开头:

----- BEGIN RSA私钥-----

,结尾是:

----- END RSA PRIVATE KEY -----

下面有一堆加密数据。

我已经在某处读过此文件必须以此行开头。

无论如何我无法连接到我的FTP服务器。

从freeFTPd控制面板,在SFTP部分,我可以创建RSA和DSA密钥(512,1024或2048位长度)。这些文件生成为RSAKey.cfg和DSAKey.cfg,它们的内容类似于freeFTPd安装过程中生成的私钥文件'freeftpd.key'。如果我使用RSAKey.cfg或从freeFTPd创建的任何其他文件,则不起作用。出现的错误消息是:

Permission denied (publickey).

所以我做错了什么?我不知道证书,私钥文件...任何帮助将不胜感激。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值