ssh是linux系统中的一个远程连接工具,也是一种网络协议,通过各种加密算法达到安全连接的效果。若能使用ssh连接到另外一台机器上,我们就可以认为是安全的。本节主要介绍的是ssh连接的原理以及ssh免密连接的原理。
一、ssh连接原理
1、环境介绍
两台linux服务器
分别安装ssh服务,并启动
2、原理以及过程
在A上使用ssh连接B机
-
- A向B发送连接请求
- B收到请求后,将自己的公钥发给A
- A收到公钥后,用公钥加密B的登陆密码,生成加密密文,发送给B
- B收到加密密文后,用自己的私钥解密,得到解密信息,然后与B的登陆密码做比较,正确则允许A登陆。
二、ssh免密登陆
1、环境介绍
A/B两台装有ssh的linux机器
在A机器上生成秘钥对
将A的公钥加入到B机器上指定位置
介绍一下~/.ssh/目录下的几个文件:
1、id_rsa 生成的秘钥 2、id_rsa.pub 生成的公钥 3、authorized_keys 存放远程连接主机的公钥,一行一个公钥,权限为600 4、know_hosts (该文件不会立刻生成)存放被连接主机的公钥,下次连接时会核对公钥是否一致,若不一致,则发出相应的警报,作用是避免安全攻击,比如说DNS劫持等。
若发现异常会显示下图的提示,只要删除know_hosts文件里冲突的公钥即可。
可通过以下命令实现秘钥对的创建与免密登陆的操作:
此时,便可以免密连接了。
2、免密连接原理及过程
-
- A向B发送连接请求,并带上自己的公钥
- B收到A的公钥,检查机器上的授权列表是否包含有A的公钥,若存在,再生成一个随机数,使用公钥加密,生成加密密文发送给A
- A收到加密密文后,用私钥机密,得到的结果发送给B
- B收到A发来的结果,与之前生成的随机数作比较,一致则允许A连接