【问题标题】:How to use .crt file for SSH public key authentication如何使用 .crt 文件进行 SSH 公钥认证
【发布时间】:2014-11-13 15:28:15
【问题描述】:

我正在使用 C#(.NET 程序集)开发 SFTP WinSCP 客户端。在我的测试环境中,我通过密码验证来做到这一点。以下是我的会话选项:

// Setup session options
SessionOptions sessionOptions = new SessionOptions {
    Protocol = Protocol.Sftp,
    HostName = "example.com",
    UserName = "user",
    Password = "mypassword",
    SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
};

但真实环境没有用户密码。服务器管理员提供扩展名为“.crt”的公钥

那么使用这个公钥如何更改我的程序 (SessionOptions)?

这些细节是否足以进行此实施?

crt文件预览

【问题讨论】:

  • 你确定你应该使用 SFTP 吗? .crt 文件看起来像一个证书,它与 TLS/SSL 一起使用(因此可能是 FTPS=FTP over TLS/SSL),而不是与 SSH (SFTP) 一起使用。您还需要一个私钥,而不是公钥(但.crt 可能同时包含两者)。你应该自己生成你的私钥,你不应该从管理员那里得到它。所以另一个混淆可能是它是服务器的证书,而不是用于身份验证的帐户证书。
  • 谢谢你,Martin...你能给我一个如何进行 SFTP 公钥认证的步骤吗?
  • 不,除非你至少回答了我上面的一些问题。我还没有看到用于 SFTP 公钥身份验证的 .crt 文件。当您打开文件时(在文本编辑器中)该文件是什么样的?您是否从管理员那里获得了有关如何使用它的任何信息/文档(即使用于其他客户端/工具)?
  • 我添加了.crt 文件的图像。实际上我想要SFTP 客户端。我使用密码身份验证完成了它。但是现在服务器管理员说他不能提供密码并使用公钥进行身份验证。现在我正在尝试找到方法,如何进行此身份验证。之后,我可以向服务器管理员说我需要从他那里得到什么
  • .crt 文件有多大?

标签: ssh sftp public-key winscp winscp-net


【解决方案1】:

从你收到的文件的扩展名、外观和大小来看,我相信它是证书形式的服务器公钥。

首先,服务器的公钥只能用于验证您连接的服务器是否确实是您想要连接的服务器(即没有正在进行的中间人攻击)。

其次,密钥的证书格式从不与 SSH 一起使用。它与 TLS/SSL 一起使用,例如与 FTPS(基于 TLS/SSL 的 FTP)或 HTTPS 一起使用。

我想说你和服务器管理员之间有很大的误解。

如果您想了解更多详情,最好在SuperUserServerFault 上提问,因为这最终看起来不像是编程问题。

【讨论】:

  • 谢谢Martin。使用winSCP有没有办法进行公钥认证? (无密码)。
  • 当然,使用SessionOptions.SshPrivateKeyPath。但为此,您首先需要确保您完全连接到 SSH/SFTP 服务器,并且您需要拥有私钥并在服务器上注册公钥。见Set up SSH public key authentication
  • Martin 你能给我一个像这样进行公钥认证的方法吗?winscp.net/eng/docs/ssh#authentication_in_ssh
  • 是的 Martin,它是 SSH/SFTP。
  • 不确定您的要求,我已经在之前的评论中回复了。你试过了吗?如果您有特定问题,请开始一个新问题。这不是一个讨论论坛。请阅读How to Ask
猜你喜欢
  • 2017-07-06
  • 2015-04-06
  • 1970-01-01
  • 2012-06-28
  • 2021-12-18
  • 2015-10-20
  • 2012-05-22
  • 1970-01-01
  • 2016-05-19
相关资源
最近更新 更多