1.SSH建立原理
SSH 为Secure Shell的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。
SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他平台,都可运行SSH。
SSH登录主要分为两个阶段:
协商客户端和服务端双方通信所使用的共享密钥,并用这个共享密钥实现后续会话过程的对称加密;
使用非对称加密方式验证客户端的身份
协商会话所使用的共享密钥
在这一大步中,又分为以下几小步:
1.客户端发起tcp连接请求;
2.服务器返回其支持的协议版本以及服务器的公共主机密钥,该密钥用于判断服务器是否是预期的主机;
3.双方交换会话密钥,用于后续会话做对称加密
1.客户端联系服务端,双方沟通自己支持的 SSH 协议的版本,约定使用某个共同支持的版本。
2.服务端将自己的 Host Key 、加密方法和其他一些参数发给客户端。
3.客户端通过 Host Key 验证服务端身份,双方用服务端发来的参数和 Diffie-Hellman 算法生成 Session Key。
4.加密通道建立完成。
二、配置两台主机的远程连接实现免密登录
一、让服务器A实现免密登录自己
1、在A服务器中指定的位置(/root/.ssh)生成私钥id_rsa和公钥id_rsa.pub;
在服务器A操作
看到如下图生成的私钥和公钥,此时服务器A的私钥已经生成。
2、在服务器A中把公钥id_rsa.pub追加到服务器A管理密码登录权限的文件(authorized_keys)中。
3、此时,服务器A可免密登录服务器器A了。验证:
二、让服务器A实现免密登录服务器B
1、把服务器A的公钥id_rsa.pub复制到服务器A要免密登录的那台服务器(即B)中的指定位置(/root/.ssh);
在服务器A操作
2、在服务器B中把公钥id_rsa.pub追加到服务器B管理密码登录权限的文件(authorized_keys)中。
在服务器B操作
此时,服务器A的公钥(登录服务器B的权限)追加到服务器B中的权限文件authorized_keys中,服务器A可免密登录服务器器B了。
原因:因为此时服务器B的密码登录权限文件authorized_keys中已经有服务器A的公钥,即A获得了B的登录权限。
3、验证:
在服务器A中操作登录已经不需要密码了
三、让服务器B实现免密登录服务器A
和步骤二是一样的操作。
所有完成后 两台主机可以互相免密登录