Python学习:SSH协议实现模块paramiko的使用

简介SSH是一个数据交互通信协议,而OpenSSH是SSH协议的一个开源实现。而在Python的第三方库中,paramiko是实现SSH协议v2版本的通信模块。通过使用paramiko模块,可以在Python代码中直接使用SSH协议,对远程服务器进行操作、类似于通过Linux命令ssh对远程服务器进行操作。由于paramiko属于Python第三方库,在使用之前需通过pip安装:pip i...
摘要由CSDN通过智能技术生成

简介

SSH是一个数据交互通信协议,而OpenSSH是SSH协议的一个开源实现。

而在Python的第三方库中,paramiko是实现SSH协议v2版本的通信模块。通过使用paramiko模块,可以在Python代码中直接使用SSH协议,对远程服务器进行操作、类似于通过Linux命令ssh对远程服务器进行操作。

由于paramiko属于Python第三方库,在使用之前需通过pip安装:

pip install paramiko -i http://mirrors.zte.com.cn/pypi/simple/ --trusted-host mirrors.zte.com.cn

介绍

paramiko库包含了两个核心的组件,分别是SSHClient与SFTPClient。

类SSHClient是对SSH会话的封装,该类封装了传输(Transport)、通道(Channel),以及SFTPClient的创建方法(open_sftp),通常用于执行远程命令。

类SFTPClient是对SFTP客户端的封装,用以实现对远程服务器上的文件的操作,如文件上传,文件下载,文件权限修改等操作。

在paramiko中,Channel是一种类socket,即一种安全的SSH传输通道。

Transport是一种加密的会话,使用时会同步创建一个加密的通道,即Channel。

而Session是client与server保持连接的对象。

SSHClient常用方法介绍

一、connect

connect方法实现远程服务器的连接与认证,对于该方法,hostname是必传的参数。方法的具体参数如下:

  1. hostname,即连接的目标主机,可以是IP地址字符串;
  2. port,指定端口号;
  3. username,验证的用户名;
  4. password,验证的用户密码;
  5. pkey,私钥方式用于身份验证;
  6. key_filename,一个文件名或者文件列表,指定私钥文件;
  7. timeout,可选的tcp连接超时时间;
  8. allow_agent,是否允许连接到ssh代理,默认为True,表示允许;
  9. look_for_keys,是否在~/.ssh/中搜索私钥文件,默认为True,表示允许;
  10. compress,是否打开压缩,默认为False,表示不打开。

二、set_missing_host_key_policy

设置远程服务器没有在know_hosts文件中记录时的应对策略,目前支持三种策略,具体如下:

  1. AutoAddPolicy,自动添加主机名及主机密钥到本地HostKeys对象,不依赖load_system_host_key的配置。即新建立ssh连接时不需要再输入yes或no进行确认;
  2. WarningPolicy,用于记录一个未知的主机密钥的python警告。并接受,功能上和AutoAddPolicy类似,但是会提示是新连接;
  3. RejectPolicy,
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值