SSH加密原理
1、SSH初次交换公钥
- 客户端发起链接请求
- 服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
- 客户端生成密钥对
- 客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密
- 客户端发送加密后的值到服务端,服务端用私钥解密,得到Res
- 服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
- 最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密
2、SSH加密原理
3、SSH服务登录的常用验证方式
- 用户/口令
- 基于密钥
- 首先在客户端生成一对密钥(ssh-keygen)
- 并将客户端的公钥ssh-copy-id 拷贝到服务端
- 当客户端再次发送一个连接请求,包括ip、用户名
- 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生
成一个字符串,例如:magedu - 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
- 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
- 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录
分两步实现:
1、现在client端生成自己的密钥对(公私钥)
2、把客户端公钥手动添加到服务端
ssh_client#ssh-keygen
默认路径在/root/.ssh/id_rsa 默认是rsa加密方式
提示你是否添加密码。
版权声明:
作者:后浪云
链接:https://www.idc.net/help/30394/
文章版权归作者所有,未经允许请勿转载。
THE END