PuTTY 和 SSH 免密码登录

原创
2019/06/14 17:21
阅读数 1.7K

需求

今天在工作中对 ssh key 有了更深的认识。 昨天给 Scrum 项目组新建了两台 CentOS 虚拟机,Jeffery 希望能够使用 ppk 文件免密码登录。 尝试了几种解决方案。 首先是在自己的机器上利用 PuTTYgen (PuTTY Key Generator) 生成一对公钥和私钥。 然后把私钥保存为 .ppk 文件。 然后把生成的公钥保存到远程的目标服务器的目标用户家目录下 .ssh 下的 authorized_keys 文件中。 如此以来,就可以在自己的机器上,利用 ppk 文件实现免密登录该远程服务器。

参考资料

我们现在一共有 Service, Data, Test1, Test2 四台 CentOS 虚拟机。

  • 如何使得它们之间可以通过ssh免密访问?
  • 如何使得在个人PC上通过PuTTY对这些虚拟机进行免密访问?

解决方案

为了简化工作流程,就在 Service 服务器上的 xxx-user 用户下,运行 ssh-keygen 生成一对公钥和私钥在其 ~/.ssh 文件夹。 默认的文件名分别是 id_rsa.pub 和 id_rsa。并且以命令 vi ~/.ssh/authorized_keys 新建 authorized_keys 文件, 并且把 公钥的内容追加到 ~/.ssh/authorized_keys 文件中。记得以 chmod 600 authorized_keys 修改文件权限。

并且以 scp 命令把 id_rsa.pub, id_rsa 和 authorized_keys 文件从 Service 服务器 复制 到 其他三台服务器的 ~/.ssh/ 目录下。 这样可以实现这四台服务器之间以ssh免密访问(如果 scp 命令无效,可以手工创建文件、复制、粘贴)。注意 chmod 600 id_rsa

以 WinSCP 把私钥 id_rsa 复制到自己的机器上,然后 PuTTYgen -> Conversions -> Import key -> Save private key 可以把在 CentOS 中生成的私钥 另存为 ppk 格式。之后以 PuTTY 登录该四台远程服务器时,就可以凭私钥ppk文件,实现免密登录。

原理分析

首先至少要准备一对公钥和私钥,然后把公钥放在目标服务器上 ~/.ssh/authorized_keys 文件中。然后从持有私钥的客户端服务器上,就可以 ssh xxx-user@IP 免密登录到目标服务器。 使用 PuTTY 则要使用转存之后的 ppk 格式的 私钥。

PuTTY 免密SSH登录

参考

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部