SSH工作原理

在linux上学习配置openssh服务器,想要了解它的工作原理,而我openssh只支持ssh2,因此,接下来是我对ssh2工作原理的大致认识
一、ssh2协议
    在ssh1中,由单个协议提供密钥交换、身份认证与加密的功能,而ssh2内部由3个协议组合一起,为其提供这些功能。这3个协议:
    传输层协议
    认证协议
    连接协议
  1. 传输层协议
    主要提供密钥交换与服务器端认证功能
  2. 认证协议
    主要是提供客户端认证功能,而客户端认证主要有基于口令认证和基于密钥认证
  3. 连接协议
    主要提供远程执行命令功能
二、工作流程
  1. 服务器端开启ssh服务,在端口22监听客户端请求

  2. 客户端发出请求,如果是第一次与服务器建立连接,服务器端会向客户端发送一个rsa key
    这里写图片描述
    而此rsa key会被记录到服务器端的~/.ssh/known_hosts中,下次远程登录服务器就不会出现以上的提示信息
    这里写图片描述

  3. 客户端接收到服务器端发送过来的rsa key后,就会采用与服务器端协商好的加密算法,生成会话密钥(此会话密钥用于加密客户端与服务器端之间的会话),并用rsa key加密会话密钥,并发送给服务器端。

  4. 服务器端就用对应的私钥解密已加密的会话密钥,然后用此会话密钥加密确认信息,发送给客户端。客户端用会话密钥解密加密的确认信息,到此,密钥交换成功和服务器认证成功

  5. 接下来就是客户端的认证,客户端认证有两种方法:

     基于口令认证:客户端发送用会话密钥加密的远程登入的用户名与密码,服务器接收到,用会话密钥解密,并验证用户名与密码的正确性。
    
    基于密钥认证:口令认证容易受“中间人”攻击,而密钥认证安全性较好,用户名与密码不用在网上传输,被人破解。客户端生成一对密钥,此密钥只用于客户端的认证,然后将公钥内容上传到服务器端~/.ssh/authorized_hosts文件中。客户端发出密钥认证请求,服务器端就会用客户端的公钥加密一段数据,发送给客户端,客户端用对应的私钥解密,然后将数据与会话密钥进行散列运算,生成摘要,发送给服务器端,服务器端就会用原始数据和会话密钥,生成摘要,并对比两个摘要是否一致,若一致,则客户端认证成功
    
  6. 连接成功后,就可以远程登入主机,执行远程命令控制

三、基于密钥认证实例

1.客户端生成一对密钥
这里写图片描述
2.将公钥上传到服务器端,这里有两种方法上传
一种使用ssh-keygen命令:
这里写图片描述
查看服务器端的~/.ssh/authorized_hosts文件
这里写图片描述
另一种方法,在客户端使用scp(基于ssh协议的文件复制工具)
这里写图片描述
在服务器端的操作,查看是否成功收到客户端公钥
这里写图片描述
然后将公钥文件内容导入~/.ssh/authorized_hosts文件中,如果~/.ssh/authorized_hosts(权限为600)文件不存在,就创建
这里写图片描述

3.测试
这里写图片描述

建议:客户端认证最好用基于密钥认证,禁止客户端使用root身份登入主机,可以修改配置参数
这里写图片描述

四、总结

在学习过程中,参考很多关于ssh原理的文章,也许每个人理解的侧重点不一样,在理解过程中,出现很多疑问,最后发现一篇文章(https://translate.google.com.hk/translate?hl=zh-TW&sl=en&u=http://www.slashroot.in/secure-shell-how-does-ssh-work&prev=search,此网站的访问需要翻墙)对ssh原理的解释解决我的部分疑问,里面讲解ssh1协议的工作原理,还有与ssh2的不同点,对于里面讲解的ssh2,我还是有点不明白,就去谷歌很多文章,但是都无法真正理解ssh2的工作原理,大概的工作原理还是能够理解得到,所以就总结出这篇文章。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值