我总是在putty中使用ssh来连接远程服务器。据我所知,ssh是基于公钥/私钥的机制,是吗?两台机器如何通过SSH连接进行身份验证?
这是否意味着客户端在连接到服务器后首次接收到公钥,然后使用公钥继续进行以下通信?
谢谢。
我总是在putty中使用ssh来连接远程服务器。据我所知,ssh是基于公钥/私钥的机制,是吗?两台机器如何通过SSH连接进行身份验证?
这是否意味着客户端在连接到服务器后首次接收到公钥,然后使用公钥继续进行以下通信?
谢谢。
您是指认证还是加密?
对于身份验证,第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创建密钥对? – Ricky 2010-01-04 08:54:58
有两个部分,其中的公钥/私钥开始发挥作用 - 会话初始化和(可选)用户身份验证。
在会话初始化时,公钥和私钥用于设置加密连接,但不用于加密连接本身。相反,初始设置用于安全地生成用于加密连接的唯一会话密钥。主机公钥/私钥在服务器上生成并安装。
连接时,您的ssh客户端(本例中为PuTTY)将验证主机密钥是从上次连接时记得的。 (如果它们不同,那么有人可能会窃听你的连接!)这就是为什么PuTTY要求你在首次连接时确认主机密钥的哈希值 - 它没有记录密钥是什么应该是,所以它会要求你验证。如果您告诉PuTTY确认并保存,PuTTY会将主机密钥的散列保存在注册表中以备将来连接。
在用户认证中,使用公钥和私钥来允许访问服务器。公钥在服务器上为用户安装。然后,服务器可以使用该密钥向客户端发出挑战,只有使用用户的私钥才能正确回答该问题。用户自己生成公钥/私钥(例如,使用ssh-keygen)。
对于PuTTY,您可以使用PuTTYgen实用程序(这是与ssh-keygen相同的PuTTY)生成您自己的公钥和私钥。这取决于你如何获得公钥installed on the server。然后,运行Pageant(位于通知区域的小应用程序)并添加您的私钥。如果您在私钥上设置密码,则Pageant将提示您输入密码。 Pageant在运行时会与PuTTY(或者pscp,psftp等)一起使用,以便使用您的私钥。
这是对所涉及过程的严格简化;请参阅詹姆斯'答案为链接到细节。
你能否对Putty的实现给予更多的阐述? – Ricky 2010-01-05 10:42:39
用PuTTY位编辑我的回复。请阅读PuTTY文档中有关pubkeys的部分:http://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter8.html#pubkey – ZoogieZork 2010-01-05 17:55:41
我澄清了标题。 – Soviut 2010-01-04 08:56:14