SSH介绍
SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
SSH原理
节点A要实现无密码公钥认证连接到节点B上时,节点A是客户端,节点B是服务端。需要在客户端A上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到服务端B上。当客户端A通过ssh连接服务端B时,服务端B就会生成一个随机数并用客户端A的公钥对随机数进行加密,并发送给客户端A。客户端A收到加密数之后再用私钥进行解密,并将解密数回传给B,B确认解密数无误之后就允许A进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端A公钥复制到B上。
准备
三台机器
机器名 | IP |
ding | 192.168.80.110 |
pei | 192.168.80.111 |
qiang | 192.168.80.112 |
关于vmware 中如何安装 centos7 的系统,并设置固定IP,请查看我的博客中VMware栏
检查是否安装SSH
显示如上,则已安装
如果没有安装,则参考我的博客中ssh 安装部分
在hosts里添加各机器名和IP
在hosts里添加各机器名和IP的映射后,就可以通过机器名访问对应的机器,不需要记忆和输入复杂的IP了。
在文件/etc/hosts文件的末尾添加如下内容:
生成公私钥
主机之间远程登录,发起登录一方是客户端机器,被登录一方是服务端机器,客户端向服务端发起登录请求,服务端需要确定客户端是安全的,如何确认安全?就是通过公钥,客户端发起向服务端登录请求前,需要提前将自己的公钥复制一份给服务端,这样服务端就有了客户端的公钥,服务端收到客户端发起的登录请求后,会使用公钥与客户端进行对接暗号,对上了就让客户端登录,对不上就拒绝。因此 服务端只有存在客户端的公钥,客户端才能免密登录服务端。
例如
192.168.80.110 要免密登录 192.168.80.111,192.168.80.112
- 192.168.80.110 生成 公私钥
这里我们使用root用户实现免密登录
进入root 的home目录
ssh-keygen -t rsa
一路回车,在root用户的home目录中生成.ssh 文件夹,其中包含公私钥
操作同上 其他两台机器也要生成公私密钥
- 服务端主机 新建 authorized_keys文件
这里 我们使用110 登录 111 与112
因此110 是客户端机器,111与112 是服务端机器
在111 与 112 的.ssh 文件夹中新增 authorized_keys 文件,并将110的公钥文件内容复制进去。
(1)获取110 主机的 公钥
(2)111 与 112 的 .ssh文件夹中 创建 authorized_keys ,并将公钥复制进去
(3) 验证 免密登录 ssh 主机名
后面添加一个-v 可以看到详细的日志
提示是否继续,输入yes
显示登入成功
输入exit 推出登录