一、ssh原理
ssh相对于telnet等协议的优点在于安全性,ssh使用了非对称加密来确保安全性。
登录步骤:
- 远程Server收到Client端用户的登录请求,Server把自己的公钥发给用户。
- Client使用这个公钥,将密码进行加密。
- Client将加密的密码发送给Server端。
- 远程Server用自己的私钥,解密登录密码,然后验证其合法性。
- 若验证结果,给Client相应的响应。
应对中间人攻击:
- 第一次登录时增加确认步骤,让登录者确认来源ip是否正确。
- 使用公钥fingerprint确认,因为key太长,用hash生成一个128位指纹方便比较
- 确认无误后追加到know_hosts文件里
基于公钥认证:
- Client将自己的公钥存放在Server上,追加在文件authorized_keys中。
- Server端接收到Client的连接请求后,会在authorized_keys中匹配到Client的公钥pubKey,并生成随机数R,用Client的公钥对该随机数进行加密得到pubKey(R),然后将加密后信息发送给Client。
- Client端通过私钥进行解密得到随机数R,然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1,发送给Server端。
- Server端会也会对R和SessionKey利用同样摘要算法生成Digest2。
- Server端会最后比较Digest1和Digest2是否相同,完成认证过程。
二、paramiko原理
paramiko基于ssh用于远程连接服务器并执行相关操作,堡垒机一般使用paramiko实现ssh连接。
sftp:sftp是ssh的子服务,用于加密传输文件,速度较慢。
三、ansible
ansible基于 paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作。
Ansible 在管理节点将 Ansible 模块通过 SSH 协议推送到被管理端执行,执行完之后自动删除。
本文介绍了SSH、Paramiko与Ansible的原理。SSH使用非对称加密确保安全,有登录、应对中间人攻击和基于公钥认证等流程;Paramiko基于SSH用于远程连接服务器,堡垒机常用其实现连接,还有加密传输文件的sftp子服务;Ansible基于Paramiko开发,分布式、轻量级,可通过SSH推送模块到被管理端执行。
2601

被折叠的 条评论
为什么被折叠?



