python离线安装paramiko模块,python paramiko模块

  python离线安装paramiko模块,python paramiko模块

  内容1。导言2。安装3。paramiko核心组件3.1 SSHClient类3.1.1 connect方法3.1.2 exec_command方法3.1.3 load_system_host_key方法3 . 1 . 4 set _ miss Ing _ host _ key _ policy方法3.2 SFTPClient类3 . 2 . 1 from _ Transport 3 . 2 . 2 put 3 . 2 . 3 get 3 . 2 . 4其他3.3远程连接和执行命令3.3.1直接认证模式3.3.2 SSHCli封装的基于公钥的传输3 . 3 . 3 . 3 . 3连接

  1.简介paramiko模块基于python实现SSH2远程安全连接,支持认证和密钥模式,可以实现远程连接、命令执行、文件传输、中间SSH代理功能。与pexpect相比,封装级别更高。

  2.安装pip安装paramiko

  轻松安装paramiko

  Paramiko依赖于第三方Crypto、Ecdsa和pyhton-devel,所以需要安装。

  3.paramiko核心组件

  3.1 SSHClient类SSHClient类是SSH服务会话的高级表示,实现了传输、通道、SFTP验证和建立的方法。

  3.1.1 connect方法connect方法实现远程ssh连接并进行验证。

  参数

  主机名建立连接的目标主机

  Port=SSH_PORT指定端口

  用户名=无已验证的用户名

  密码=无经过身份验证的用户密码

  Pkey=无私钥用于身份验证。

  Key_filename=None指定私钥文件的文件名或文件列表。

  Timeout=None可选tcp连接超时

  Allow_agent=True,是否允许连接ssh代理,默认值为True。

  Look_for_keys=True是否在~/中搜索私钥文件。ssh,默认值为True。允许

  Compress=False,是否要打开压缩?

  sock=无,

  gss_auth=False,

  gss_kex=False,

  gss_deleg_creds=True,

  gss _ host=无,

  横幅_超时=无

  3.1.2 exec_command方法是一种远程执行命令的方法。该命令的输入和输出流是标准输入、标记输出和标准错误输出。

  参数

  由命令执行的命令

  缓冲区大小=-1文件缓冲区大小

  超时=无

  get_pty=False

  3 . 1 . 3 load _ system _ host _ key方法夹在本地公钥文件中,默认值为~/。ssh/已知主机。

  参数

  Filename=None指定本地公钥文件

  3.1.4当连接的远程主机没有本地主机密钥或主机密钥对象时,set _ missing _ host _ key _ policy方法设置策略。目前,它支持三种:

  AutoAddPolicy自动将主机名和主机密钥添加到本地HostKeys对象中,与load_system_host_key的配置无关。也就是说,在新建立ssh连接时,不需要输入yes或no来确认。WarningPolicy是用于记录未知主机密钥的python警告。并接受它。在功能上类似于AutoAddPolicy,但是会提示新的connection RejectPolicy自动拒绝未知的主机名和密钥,具体取决于load_system_host_key的配置。这是默认选项用法:

  ssh.paramiko.SSHClient()

  set _ missing _ host _ key _ policy(paramiko。AutoAddPolicy())

  3.2 sftpClient类sftpClient作为SFTP的客户端对象,根据ssh传输协议的SFTP会话实现远程文件操作,如上传、下载、权限、状态等。

  3.2.1 from_transport创建一个连接的SFTP客户端通道。

  定义:

  from_transport(cls,t)的示例:

  导入paramiko

  t=帕拉米科。运输(( 192.168.56.132 ,22))

  t.connect(用户名=root ,密码=1234567 )

  sftp=paramiko。SFTPClient.from_transport(t)

  3.2.2把本地文件上传到服务器。参数confirm:是否调用stat()方法检查文件状态并返回ls -l L的结果。

  定义:

  put的参数描述(localpath,remotepath,callback=none,confirm=true):

  Localpath(str类型),要上传的本地文件(源);Remotepath(字符串类型),远程路径(目标);Call back (function (int,int)),得到接收的字节数和发送的字节总数,从而回调函数调用。默认值为无;确认(bool类型),文件上传后是否调用stat()方法,从而确认文件的大小。示例:

  localpath=/home/access.log

  远程路径=/data/logs/access。“日志”

  sftp.put(本地路径,远程路径)

  获取从服务器下载文件到本地

  定义:

  获取(远程路径,本地路径,回调=无)参数说明:

  远程路径(字符串类型),需要下载的远程文件(源);回调(函数(int,int)),获取已接收的字节数及总和传输字节数,以便回调函数调用,默认为没有。

  示例说明:远程路径=/data/logs/access。“日志”

  localpath=/home/access.log

  sftp.get(远程路径,本地路径)

  3.2.4 其他移除()在服务器上删除目录重命名()在服务器上重命名目录统计()查看服务器文件状态列表目录()列出服务器目录下的文件

  3.3 远程连接并执行命令实现远程连接主机,并执行命令,同时记录日志

  3.3.1 直接验证方式导入简单讲解及作业需求

  主机=172.16.200.45

  端口=22

  user=root

  passwd=123123

  # 创建嘘对象

  ssh=paramiko .SSHClient()

  # 允许连接不在认识_主机文件中的主机

  嘘。set _ missing _ host _ key _ policy(paramiko .AutoAddPolicy())

  # 连接服务器

  ssh.connect(主机名=主机,端口=端口,用户名=用户,密码=密码)

  帕拉米科。util。日志文件(中的系统日志。日志)#将登录信息记录日志

  # 执行命令

  stdin,stdout,stderr=ssh.exec_command(df )

  # 获取命令结果

  result=stdout.read()

  打印(结果)

  # 关闭连接

  ssh.close()

  嘘客户端封装Transportimport paramiko

  主机=172.16.200.45

  端口=22

  user=root

  passwd=123123

  transport=paramiko .传输((主机,端口))

  传输.连接(用户名=用户,密码=密码)

  ssh=paramiko .SSHClient()

  嘘. transport=运输

  stdin,stdout,stderr=ssh.exec_command(df )

  print(stdout.read())

  3.3.3 基于公钥密钥连接导入简单讲解及作业需求

  private_key=paramiko .RSA密钥。from _ private _ key _ file(/home/fuzengjie/).ssh/id _ RSA’)

  # 创建嘘对象

  ssh=paramiko .SSHClient()

  # 允许连接不在认识_主机文件中的主机

  嘘。set _ missing _ host _ key _ policy(paramiko .AutoAddPolicy())

  # 连接服务器

  ssh.connect(主机名=172.16.200.45 ,端口=22,用户名=fuzengjie ,key=private_key)

  # 执行命令

  stdin,stdout,stderr=ssh.exec_command(df )

  # 获取命令结果

  result=stdout.read()

  # 关闭连接

  ssh.close()

  嘘客户端封装运输使用公钥方式导入简单讲解及作业需求

  private_key=paramiko .RSA密钥。from _ private _ key _ file(/home/fuzengjie/).ssh/id _ RSA’)

  transport=paramiko .运输(( 172.16.200.45 ,22))

  传输.连接(用户名=fuzengjie ,pkey=private_key)

  ssh=paramiko .SSHClient()

  嘘. transport=运输

  stdin,stdout,stderr=ssh.exec_command(df )

  transport.close()

  3.4 远程连接实现文件上传下载

  3.4.1 基于用户名密码上传下载导入简单讲解及作业需求

  主机=172.16.200.45

  端口=22

  user=root

  passwd=123123

  transport=paramiko .传输((主机,端口))

  传输.连接(用户名=用户,密码=密码)

  sftp=paramiko .SFTPClient.from_transport(传输)

  # 将location.py上传至服务器/tmp/test.py

  a=sftp.put(/Users/fuzengjie/1 ,/tmp/fuzz 123 ,confirm=True)

  打印(一)#打印上传到服务器上的文件状态

  # 将移除路径下载到本地本地路径

  sftp.get(/root/tesst.py ,/Users/fuzengjie/test.py )

  transport.close()

  3.4.2 基于公钥密钥上传下载导入简单讲解及作业需求

  private_key=paramiko .RSA密钥。from _ private _ key _ file(/home/fuzengjie/).ssh/id _ RSA’)

  transport=paramiko .运输(( 172.16.200.45 ,22))

  传输.连接(用户名=fuzengjie ,pkey=private_key)

  sftp=paramiko .SFTPClient.from_transport(传输)

  # 将location.py上传至服务器/tmp/test.py

  sftp.put(/tmp/location.py ,/tmp/test.py )

  # 将移除路径下载到本地本地路径

  sftp.get(/root/123.txt ,/tmp/123 )

  transport.close()参考资料:

  http://docs.paramiko.org/en/2.4/api/client.html?突出显示=连接

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: