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