SSH协议原理
一、ssh连接原理
1、环境介绍
两台linux服务器
分别安装ssh服务
2、原理以及过程
在A上使用ssh协议连接B
A向比发送连接请求
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连接