SSH通信两种方式的原理
2017-01-12 11:08
225 查看
SSH通信第一种
帐号密码验证 :
当用户向服务器发起SSH请求的时候,服务器将自己的公钥发给客服端
客服端将自己的帐号密码用服务器发来的公钥进行加密,
最后服务器端用自己的私钥对收到的数据进行解密。
但是无法确保中间人冒充服务器***这种情况。
第二种 公钥验证方式
说明:
(1) 首先在客户端生成一对密钥(ssh-keygen);
(2) 并将客户端的公钥ssh-copy-id 拷贝到服务端;
(3) 当客户端再次发送一个连接请求,包括ip、用户名;
(4) 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:qwer;
(5) 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端;
(6) 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端;
(7) 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录。
(8)在过程中还会调用SSL生成密钥,并且用自己的私钥加密,发送给服务端,服务端接收到该私钥后,认证完成后,以后通信就用这个对称密钥加密。
帐号密码验证 :
当用户向服务器发起SSH请求的时候,服务器将自己的公钥发给客服端
客服端将自己的帐号密码用服务器发来的公钥进行加密,
最后服务器端用自己的私钥对收到的数据进行解密。
但是无法确保中间人冒充服务器***这种情况。
第二种 公钥验证方式
说明:
(1) 首先在客户端生成一对密钥(ssh-keygen);
(2) 并将客户端的公钥ssh-copy-id 拷贝到服务端;
(3) 当客户端再次发送一个连接请求,包括ip、用户名;
(4) 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:qwer;
(5) 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端;
(6) 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端;
(7) 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录。
(8)在过程中还会调用SSL生成密钥,并且用自己的私钥加密,发送给服务端,服务端接收到该私钥后,认证完成后,以后通信就用这个对称密钥加密。
相关文章推荐
- [ SSH 两种验证方式原理 ]
- FastCGI特点原理、nginx与php-fpm两种通信方式对比
- [ SSH 两种验证方式原理 ]
- [ SSH 两种验证方式原理 ]
- SSH 两种验证方式原理
- 不同VLAN之间相互通信的两种方式
- (5) 编码剖析Spring装配基本属性的原理【附加:注入依赖对象的两种方式】
- MSComm两种方式处理通信控件
- WINCE下的两种通信方式
- 不同VLAN之间相互通信的两种方式(方式一:单臂路由)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- 不同VLAN之间相互通信的两种方式(单臂路由、三层交换)
- 十五、不同VLAN之间相互通信的两种方式(单臂路由、三层交换)
- 内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap(不考虑共享内存)
- 不同VLAN之间相互通信的两种方式 (单臂路由、三层交换)
- 黑马程序员_多线程间通信的两种方式
- (4) 编码剖析Spring装配基本属性的原理【附加:注入依赖对象的两种方式】
- 不同VLAN之间相互通信的两种方式(单臂路由、三层交换)
- 不同VLAN之间相互通信的两种方式(单臂路由、三层交换)
- (Android实战)AsyncTask和Handler两种异步方式实现原理和优缺点比较