问题:
点击登录按钮后,主机密钥验证窗口将显示主机密钥信息。(不是我生成的。这应该是默认发生的。)
对于公钥认证,我尝试从客户端密钥管理器生成密钥对,然后将公钥导出到我的网络服务器,它显示密钥无效。(这里可能出了什么问题?)
如果我生成或导入密钥对,主机密钥验证窗口不会显示我生成的密钥对。(这是提示您接受指纹信息的地方。)
我知道的:
在没有验证您的指纹是否匹配的情况下接受主机密钥是不好的,因为不法分子可能会破坏您的系统,例如向您的计算机发送病毒或窃取敏感信息。
我假设这是软件本身提供的虚拟主机密钥信息。也许是为了确保您拥有匹配的指纹。
软件鼓励您生成主机密钥作为除密码之外的附加安全措施,或者您只需使用主机密钥登录即可。
如果您单击软件上的帮助链接,您将看到:
主机密钥管理器:单击此链接可打开 Bitvise 主机密钥管理,您可以在其中查看您信任的 SSH 服务器主机密钥。所有 Bitvise SSH 客户端都将使用相同的主机密钥设置。通过连接到 SSH 服务器并在出现的主机标识确认对话框中接受主机密钥,即可导入主机密钥。
软件源:
- https://www.bitvise.com/ssh-client
- https://www.bitvise.com/getting-started-connect-first-time
- https://www.bitvise.com/getting-started-public-key-bitvise
其他来源
答案1
这听起来像你混淆了两种不同的公钥在 SSH 中。
有主机密钥和用户密钥——它们都使用相同的密钥格式、相同的算法,但它们的用途完全相反:主机密钥是已收到来自服务器(如 TLS 证书);用户密钥是发送到服务器(用于用户登录目的)。
点击登录按钮后,主机密钥验证窗口将显示主机密钥信息。(不是我生成的。这应该是默认发生的。)
是的,因为这是主持人关键——它是从服务器收到并非由您发送给服务器。因此得名“主机密钥”。
(SSH 服务器确实默认生成其主机密钥,无需管理员参与。但这与您的 SSH 客户端软件无关。)
对于公钥认证,我尝试从客户端密钥管理器生成密钥对,然后将公钥导出到我的网络服务器,它显示密钥无效。(这里可能出了什么问题?)
有几种格式可以表示相同的密钥 - 您将在 authorized_keys 中使用的单行“OpenSSH”格式;多行“SSH2”格式;甚至有时是“PEM”格式。如果服务器需要 OpenSSH 格式的公钥,则必须在导出时选择该格式。
如果我生成或导入密钥对,主机密钥验证窗口不会显示我生成的密钥对。(这是提示您接受指纹信息的地方。)
您正在生成用户密钥,但“主机密钥验证”窗口根本不是有关该密钥的 —— 它并不意味着向您显示您自己的密钥(验证该密钥是没有意义的);它只向您显示识别服务器的密钥。
在没有验证您的指纹是否匹配的情况下接受主机密钥是不好的,因为不法分子可能会破坏您的系统,例如向您的计算机发送病毒或窃取敏感信息。
它们无法干扰您的系统(假设 SSH 客户端没有缺陷)。
未经验证就接受主机密钥是不好的其他原因– 它的功能与 TLS 证书非常相似,因为它可以验证哪个主机您正在连接。如果您跳过验证,并且从不受信任的位置进行连接,那么您可能会连接到攻击者的 MITM 主机,该主机会很乐意窃取您的 SSH 密码以及您通过该 SSH 连接发送的所有其他内容。
我假设这是软件本身提供的虚拟主机密钥信息。也许是为了确保您拥有匹配的指纹。
不是。这是来自您正在连接的服务器的真实主机密钥信息。
软件鼓励您生成主机密钥作为除密码之外的附加安全措施,或者您只需使用主机密钥登录即可。
主机密钥与用户登录完全无关。登录需要用户密钥 – 概念相同,算法相同,但用法完全相反。(主机密钥让客户端验证服务器;用户密钥让服务器验证客户端。)
在大多数 SSH 服务器中,用户密钥对可以工作代替密码。可能需要密钥和密码,但这并不常见。(我知道 OpenSSH 支持该功能,我相信 Bitvise WinSSHd 也支持。)