zoukankan      html  css  js  c++  java
  • paramiko基本操作

      paramiko 是一个用作远程控制的模块,它遵循SSH2协议,支持以加密和认证的方式来进行远程服务器的连接、操作、上传和下载。

      官方文档地址:http://docs.paramiko.org/

      paramiko基础操作主要有以下几种:执行远程命令,上传、下载文件

      一、执行远程命令:

    import paramiko
    
    hostname = '***'
    username = 'root'
    password = '***'
    port = 22
    
    ssh = paramiko.SSHClient()  # 创建SSH对象
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 允许连接不在 know_hosts文件中的主机
    ssh.connect(hostname=hostname, username=username, password=password, port=port) # 连接远程服务器
    stdin, stdout, stderr = ssh.exec_command('ls') #执行远程命令,返回:标准输入、标准输出、标准错误(输出和错误只会返回一种)
    print(stdout.read().decode())
    ssh.close()  # 关闭连接

      输出结果:

      

      这是root用户下目录:

      

      这段代码其他地方都很好理解,只有一句话需要注意:

        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

        这个代码指的是将目标主机的信息添加至know_hosts文件中,

        know_hosts文件在当前用户下的 .ssh文件夹下,是一个隐藏文件,当你第一次使用ssh 用户+@+ip的方式远程登录另一台机器时,系统也会提示你是否将目标机器的信息添加至know_hosts文件中。

        

        但是我们在使用paramiko进行远程连接是,如果没有上边那一行代码,代码就会报错:

        

      二、上传下载文件

    import paramiko
    
    hostname = '***'
    username = 'root'
    password = '*****'
    port = 22
    
    transport = paramiko.Transport((hostname, port))
    transport.connect(username=username, password=password)
    sftp = paramiko.SFTPClient.from_transport(transport)
    # 将本地文件传至远程
    sftp.put(r'C:UsersAdministratorDesktop1.png','/root/1.png')
    # 将远程文件传至本地
    sftp.get('/root/a.cpp', r'C:UsersAdministratorDesktopa.cpp')
    sftp.close()

      这个上传下载文件有一点类似与队列,放进去是put,取出来是get

    想了解更多Python关于爬虫、数据分析的内容,欢迎大家关注我的微信公众号:悟道Python

      

      

      

  • 相关阅读:
    python连接集群mongodb,封装增删改查
    selenium截屏操作(也支持截长图)
    ant生成jmeter测试报告没有数据【已解决】
    论自动化如何提高测试工作效率
    研究显示情商高的人比智商高的可怕多了
    提高程序员职场价值的10大技巧
    革命就是请客吃饭(案例分析吧)
    开发者应该了解的API技术清单!
    陈天:如何快速掌握一门技术
    程序员如何参与创业
  • 原文地址:https://www.cnblogs.com/ss-py/p/10229681.html
Copyright © 2011-2022 走看看