【问题标题】:How do two machines authenticate over an SSH connection?两台机器如何通过 SSH 连接进行身份验证?
【发布时间】:2010-01-06 01:57:18
【问题描述】:

我总是在 putty 中使用 ssh 来连接远程服务器。据我所知,ssh 是基于 public/private key 机制的,是吗?

这是否意味着客户端在连接服务器时会第一次收到公钥,然后使用该公钥继续进行后续通信?

谢谢。

【问题讨论】:

    标签: ssh putty


    【解决方案1】:

    您是指身份验证还是加密?

    对于身份验证,此处的第 5.5.1 节介绍了它: http://docstore.mik.ua/orelly/networking_2ndEd/ssh/ch05_05.htm#ch05-46136.html

    通常,您创建密钥对并通过其他方式获取它们。

    如果您的意思是加密,请在此处尝试第 3.9.1.3 节: http://docstore.mik.ua/orelly/networking_2ndEd/ssh/ch03_09.htm#ch03-65213.html

    【讨论】:

    • 你的意思是Putty创建密钥对?
    【解决方案2】:

    公钥/私钥在两个部分发挥作用——会话初始化和(可选)用户身份验证。

    在会话初始化中,主机公钥和私钥用于建立加密连接,但不用于加密连接本身。相反,初始设置用于安全地生成唯一的会话密钥,用于加密连接。主机公钥/私钥生成并安装在服务器上。

    在连接时,您的 ssh 客户端(在本例中为 PuTTY)将验证主机密钥是否是您上次连接时记住的内容。 (如果它们不同,那么可能有人在窥探您的连接!)这就是为什么 PuTTY 在您第一次连接时要求您确认主机密钥的散列 - 它没有记录密钥是什么em>应该是,所以它要求您进行验证。如果您告诉 PuTTY 确认并保存,那么 PuTTY 会将主机密钥的哈希值保存在注册表中以供将来连接。

    在用户身份验证中,用户公钥和私钥用于允许访问服务器。为服务器上的用户安装公钥。然后,服务器可以使用该密钥向客户端发出质询,只有使用用户的私钥才能正确回答该质询。用户自己生成公钥/私钥(例如使用 ssh-keygen)。

    对于 PuTTY,您可以使用 PuTTYgen 实用程序(这是 PuTTY 等效于 ssh-keygen)生成自己的公钥和私钥。如何获取公钥installed on the server 取决于您。然后,运行Pageant(位于通知区域的一个小应用程序)并添加您的私钥。如果您在私钥上设置了密码,那么 Pageant 会提示您输入它。 Pageant 在运行时将与 PuTTY(或 pscp、psftp 等)一起使用您的私钥。

    这是对所涉及流程的大体简化;有关详细信息的链接,请参阅 James 的回答。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多