查看“执行远程命令(Paramiko)”的源代码
←
执行远程命令(Paramiko)
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==Paramiko简介== ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography)。 有了Paramiko以后,我们就可以在Python代码中直接使用SSH协议对远程服务器执行操作,而不是通过ssh命令对远程服务器进行操作。 Paramiko是一个SSHv2协议的Python实现,提供客户端和服务器的功能。虽然它利用了Python C扩展来实现低级别加密(密码学),但Paramiko本身就是一个纯Python接口,使用Paramiko可以方便地通过SSH协议执行远程主机的程序或脚本,获取输出结果和返回值。 ===优点=== 虽然我们可以使用expect或SSH授信来达到相应的执行远程主机的效果,但Paramiko则不需要额外的配置,使用起来更加简洁优雅,而且在运维中的调度平台将会非常实用。假如有一个调度工具想调度远程主机的程序或脚本,却又不想在远程主机上部署调度工具的agent,就可以通过Paramiko来封装命令,以达到远程调度的效果。 ===应用范围=== 由于Paramiko是使用纯Python实现的,所以所有Python支持的平台,如Linux、Solaris、BSD、MacOS X、Windows等,Paramiko都可以支持。如果需要使用SSH从一个平台连接到另外一个平台进行一系列的操作时,paramiko是最佳工具之一。 == 几个重要的类 == paramiko包含两个核心组件:SSHClient和SFTPClient。 ===SSHClient=== SSHClient的作用类似于Linux的ssh命令,是对SSH会话的封装,该类封装了传输(Transport),通道(Channel)及SFTPClient建立的方法(open_sftp),通常用于执行远程命令。 ===SFTPClient=== SFTPClient的作用类似与Linux的sftp命令,是对SFTP客户端的封装,用以实现远程文件操作,如文件上传、下载、修改文件权限等操作。 Paramiko中的几个基础名词: 1、Channel:是一种类Socket,一种安全的SSH传输通道; 2、Transport:是一种加密的会话,使用时会同步创建了一个加密的Tunnels(通道),这个Tunnels叫做Channel; 3、Session:是client与Server保持连接的对象,用connect()/start_client()/start_server()开始会话。 SecureRT: https://baike.baidu.com/item/securecrt/8900957?fr=aladdin SecureTX: https://baike.baidu.com/item/securefx/8609905?fr=aladdin ===通道(Channel)类=== 通道(Channel)类是对SSH2 Channel的抽象类,是跨SSH传输的安全隧道。隧道的作用类似于套接字,并且与Python套接字API十分类似。因为SSHv2协议有一种流动窗口控制机制,如果停止从一个通道读取数据,并且这个通道的缓冲区已满,那么服务器将不会往此通道发送任何数据,但是这并不会影响同一传输上的其他通道(单个传输上的所有通道都是独立的流量控制通道)。类似地,如果服务器没有读取客户端发送的数据,那么客户端的发送调用可能会阻塞,除非设置了超时,这与正常的网络套接字完全一致。通道Channel类的实例常用于上下文管理。 ===传输(Transport)类=== 传输(Transport)类是核心协议的实现类,SSH传输连接到流(通常是套接字),协商加密的会话,进行身份验证,然后在会话之间创建流隧道(称为通道)。多个通道可以跨单个会话进行多路复用。 ===SSHClient类=== SSHClient类使用SSH服务器的会话高级表示形式。这个类将传输类、通道类和SFTPClient包装起来,以处理验证和打开通道。
返回至
执行远程命令(Paramiko)
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息