ssh相关原理及工具包

本文介绍了SSH、Paramiko与Ansible的原理。SSH使用非对称加密确保安全,有登录、应对中间人攻击和基于公钥认证等流程;Paramiko基于SSH用于远程连接服务器,堡垒机常用其实现连接,还有加密传输文件的sftp子服务;Ansible基于Paramiko开发,分布式、轻量级,可通过SSH推送模块到被管理端执行。

一、ssh原理

ssh相对于telnet等协议的优点在于安全性,ssh使用了非对称加密来确保安全性。

登录步骤:

  1. 远程Server收到Client端用户的登录请求,Server把自己的公钥发给用户。
  2. Client使用这个公钥,将密码进行加密。
  3. Client将加密的密码发送给Server端。
  4. 远程Server用自己的私钥,解密登录密码,然后验证其合法性。
  5. 若验证结果,给Client相应的响应。

应对中间人攻击:

  1. 第一次登录时增加确认步骤,让登录者确认来源ip是否正确。
  2. 使用公钥fingerprint确认,因为key太长,用hash生成一个128位指纹方便比较
  3. 确认无误后追加到know_hosts文件里

基于公钥认证:

  1. Client将自己的公钥存放在Server上,追加在文件authorized_keys中。
  2. Server端接收到Client的连接请求后,会在authorized_keys中匹配到Client的公钥pubKey,并生成随机数R,用Client的公钥对该随机数进行加密得到pubKey(R),然后将加密后信息发送给Client。
  3. Client端通过私钥进行解密得到随机数R,然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1,发送给Server端。
  4. Server端会也会对R和SessionKey利用同样摘要算法生成Digest2。
  5. Server端会最后比较Digest1和Digest2是否相同,完成认证过程。

二、paramiko原理

paramiko基于ssh用于远程连接服务器并执行相关操作,堡垒机一般使用paramiko实现ssh连接。

sftp:sftp是ssh的子服务,用于加密传输文件,速度较慢。

三、ansible

ansible基于 paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作。

Ansible 在管理节点将 Ansible 模块通过 SSH 协议推送到被管理端执行,执行完之后自动删除。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值