前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SSH浅谈

SSH浅谈

原创
作者头像
IT_Skywalker
修改2020-03-11 10:15:02
9070
修改2020-03-11 10:15:02
举报
文章被收录于专栏:IT技术漫谈

1.初识SSH

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

这里需要注意的是SSH协议的实现软件有很多, 其中最出名的应该是OpenSSH. 例如CentOS6.5默认使用的就是OpenSSH, OpenSSH分client端和server端, 下图中的sshd为运行在Linux中的守护进程, 客户端如Xshell, SecureCRT, Linux自带的ssh等.

Linux版本
Linux版本
openssh daemon
openssh daemon

2. SSH原理

SSH的本质就是对在网络中传输的数据进行加密,那一般加密方式分为对称加密和非对称的加密. 对称加密的通信方式因双方使用同一密钥,存在密钥泄露的安全问题, 非对称加密的通信方式也会存在中间人攻击的风险. 所谓中间人攻击是指, 由于SSH不像HTTPS协议那样,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。这就导致如果有黑客截获了登陆请求,然后冒充远程主机,将伪造的公钥发给用户,用户再通过伪造的公钥加密密码,再发送给冒充主机,此时冒充的主机就可以获取用户的登陆密码了,那么SSH的安全机制就荡然无存了.

如果SSH使用的是非对称加密机制,为了解决中间人攻击, SSH便增加了2种认证机制.

用户自己认证

如下本机用SSH访问192.168.182.133, 为了确认对方的真实性,SSH会让使用者自己来确定是否相信对方。

口令认证
口令认证

免密公钥认证

认证流程

例如SSH client A要使用免密公钥认证方式登录到SSH server B, 步骤如下

  • 在A上生成公钥私钥对;
  • 将A公钥拷贝给B,存入B的authorized_keys
  • A向B发送一个连接请求。
  • B得到A的请求后,在authorized_keys中查找,如果有A的公钥,则随机生成一个字符串,并用A的公钥加密,发送给A。
  • A得到B发来的消息后,使用私钥进行解密,然后将解密后的字符串发送给 B。B进行和生成的对比,如果一致,则允许免登录。

扩展延伸:

基于免密公钥认证的原理, 在A->B免密配置成功后, 任何一台主机只要得到A上的生成的私钥, 都可以访问免密B. 进一步来说, 在集群环境下, 只要在一台主机上生成私钥和对应的authorized_keys, 将其copy到其他主机上, 那么集群中的所有主机就可以相互访问了.

使用好处:

集群环境下便于服务器之间的访问

确保服务器的管理密码不被泄露

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.初识SSH
  • 2. SSH原理
    • 用户自己认证
      • 免密公钥认证
        • 认证流程
        • 扩展延伸:
        • 使用好处:
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档