PuTTY 和 SSH 免密码登陆

需求

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

参考资料

咱们如今一共有 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 修改文件权限。ssh

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

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

原理分析

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

PuTTY 免密SSH登陆

参考

相关文章
相关标签/搜索