- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Visual Studio 2008 和 .NET Framework 3.5 中有一个 C# 控制台应用程序。
出于测试目的,我在本地机器上安装了一个 FTP 服务器并对其进行了配置。我已经下载并安装了这个免费的小型 FTP 服务器:freeFTPd .这真的很简单,我大约需要 10 分钟。
配置完成后,我已使用我的 C# 控制台应用程序使用 PasswordA 身份验证方法成功连接。
现在我尝试仅使用基于 key 的文件连接到我的本地 FTP 服务器。
所以我实现的代码如下:
var keyFile = new PrivateKeyFile(@"C:\Program Files (x86)\freeFTPd\freeftpd.key");
var keyFiles = new[] { keyFile };
var methods = new List<AuthenticationMethod>();
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 要求我创建一个新的私钥文件,所以我回答"is"。现在我正在使用它,但问题是我可以使用这个私钥文件连接到我的 FTP 本地服务器。我打开了这个文件,它以下面一行开头:
-----开始RSA私钥-----
结束于:
-----结束RSA私钥-----
在它们下面是一堆加密数据。
我在某处读到该文件必须以此行开头。
无论如何,我无法连接到我的 FTP 服务器。
在 freeFTPd 控制面板的 SFTP 部分,我可以创建 RSA 和 DSA key (长度为 512、1024 或 2048 位)。这些文件生成为 RSAKey.cfg 和 DSAKey.cfg,它们的内容类似于 freeFTPd 安装过程中生成的私钥文件“freeftpd.key”。如果我使用 RSAKey.cfg 或任何其他刚刚从 freeFTPd 创建的,它就不起作用。出现的错误消息是:
Permission denied (publickey).
那么我做错了什么?我不知道证书、私钥文件...任何帮助将不胜感激。
最佳答案
在我的例子中,当缺少 PasswordAuthentication 时,我收到消息 ( (Permission denied (publickey)))。服务器需要证书和用户名/密码。
请尝试添加如下所述的两种方法。
我结合使用了 SSH.NET 作为客户端和 syncplify.me 服务器。
var keyFile = new PrivateKeyFile(config.SFTPPrivateKeyFilename);
var keyFiles = new[] { keyFile };
var methods = new List<AuthenticationMethod>
{
new PasswordAuthenticationMethod(config.SFTPUser, config.SFTPPassword),
new PrivateKeyAuthenticationMethod(config.SFTPUser, keyFiles)
};
return new ConnectionInfo(config.SFTPServer, 22, config.SFTPUser, methods.ToArray());
关于c# - 使用 SSH.NET 使用 key 文件连接到 SFTP(权限被拒绝(公钥)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43438030/
我是一名优秀的程序员,十分优秀!