Centos 7 SSH 无密码登录
Centos 7 SSH 无密码登录
需求
本人购买的阿里云 ECS, 用来做一些技术训练与部署自己开发的应用,所以要经常通过 SSH 连接到服务器进行应用部署与维护。
虽然 xshell 有 用户名/密码 加密保存的功能,但个人更喜欢 putty(没有多余的功能,专注工作),而且 xshell 没有 mac 版。
所以,迫切需要有一种方法能够免密码登录到云服务器,而且随处可用
方案
使用"公私钥"认证的方式来进行ssh登录
原理
-
客户端上创建一对 RSA 公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)
-
把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥
-
当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配,如果匹配成功登录成功
实现
windows (基于putty)
-
下载 puttygen.exe, 用于生成 RSA 公私钥
-
运行 puttygen.exe, 点击 Generate, 如下图:
然后,在空白区随意移动鼠标,puttygen.exe 会根据鼠标移动生成随机数,用来生成 RSA 公私钥
生成完成后,如下图所示:
-
将上一步生成的 Public Key 全部 copy, 然后放到服务器端 ~/.ssh/authorized_keys 文件里,一个 Public Key 占据一行,如下图所示:
-
点击 puttygen.exe 的 Save private key, 将 RSA 私钥保存成一个文件
-
打开 putty , 操作步骤如下:
- 会话 :填写服务器 IP 、Port
- 连接→数据:填好自动登陆用户名
- 连接→SSH→认证:选择认证私钥文件(第4步保存的文件)
- 会话:填写会话名称,保存
-
完成,直接双击会话名称即可免密码登录成功
linux
由于现在家里没有 linux 机器,而且 mac 也被老婆霸占,所有 linux 方法敬请期待(原理一样,步骤更少,随便在 google 在百度一下就行)。