码迷,mamicode.com
首页 > 其他好文 > 详细

Open SSH原理

时间:2015-07-13 00:34:40      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

 OpenSSH(免费的 SSH 的实现)类似于 telnet 或rshssh 客户程序也可以用于登录到远程机器。所要求的只是该远程机器正在运行 sshd,即 ssh 服务器进程。但是,与 telnet 不同的是,ssh 协议非常安全。加密数据流,确保数据流的完整性,甚至安全可靠的进行认证它都使用了专门的算法。

 

SSH原理

技术分享

1、服务器建立公钥
每一次启动sshd服务时,该服务会主动去找/etc/ssh/ssh_host* 的文件。系统刚刚安装完成时,由于没有这些公钥,sshd会主动去计算出这些需要的公钥,同时也会计算出服务器自己需要的私钥

[root@rhce7 ~]# cd /etc/ssh
[root@rhce7 ssh]# ls -l
total 268
-rw-------. 1 root root     242153 Mar 20  2014 moduli
-rw-r--r--. 1 root root       2123 Mar 20  2014 ssh_config
-rw-------. 1 root root       4442 Mar 20  2014 sshd_config
-rw-r-----. 1 root ssh_keys    227 Jun 28 05:37 ssh_host_ecdsa_key
-rw-r--r--. 1 root root        162 Jun 28 05:37 ssh_host_ecdsa_key.pub
-rw-r-----. 1 root ssh_keys   1675 Jun 28 05:37 ssh_host_rsa_key
-rw-r--r--. 1 root root        382 Jun 28 05:37 ssh_host_rsa_key.pub

2、客户端主动联机请求
若客户端想要联机到ssh服务器,则需要使用适当的客户端程序来联机,比如ssh, putty等客户端程序连接

3、服务器传送公钥给客户端
接收到客户端的要求后,服务器便将第一个步骤取得的公钥传送给客户端使用(此时应是明码传送,反正公钥本来就是给大家使用的)

4、客户端记录并比对服务器的公钥数据及随机计算自己的公私钥
若客户端第一次连接到此服务器,则会将服务器的公钥记录到客户端的用户家目录内的 ~/.ssh/known_hosts。
若是已经记录过该服务器的公钥,则客户端会去比对此次接收到的与之前的记录是否有差异。若接受此公钥,则开始计算客户端自己的公私钥

5、回传客户端的公钥到服务器端
用户将自己的公钥传送给服务器,此时:
服务器:具有服务器的私钥与客户端的公钥
客户端:具有服务器的公钥以及客户端自己的私钥

 6、开始双向加解密
(1)服务器到客户端:服务器传送数据时,拿用户的公钥加密后送出。客户端接收后,用自己的私钥解密
(2)客户端到服务器:客户端传送数据时,拿服务器的公钥加密后送出。服务器接收后,用服务器的私钥解密,这样就能保证通信安全

 

参考:

http://www.open-open.com/lib/view/open1422417444048.html

 

Open SSH原理

标签:

原文地址:http://www.cnblogs.com/abclife/p/4641771.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!