zoukankan      html  css  js  c++  java
  • Python parami

    一、使用
    SSHClient:用于连接远程服务器并执行基本命令

      1.基于用户名密码连接
        1.使用SSH帮我们创建transport对象

     1         import paramiko
     2 
     3         #  创建SSH对象
     4         ssh = paramiko.SSHClient()
     5         #  允许连接不在know_hosts文件中的主机
     6         ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
     7         #  连接服务器
     8         ssh.connect(hostname='192.168.124.32',port=22,username='name',password='')  #  22是默认端口
     9 
    10         #  执行命令
    11         stdin,stdout,stderr = ssh.exec_command('1s')
    12         #  获取命令结构
    13         result = stdout.read()
    14         #  关闭连接
    15         ssh.close()    

            2.自己创建transport对象

     1         import paramiko
     2 
     3         transport = paramiko.Transport(('hostname',22))
     4         transport.connect(username='name',password='')
     5 
     6         ssh.paramiko.SSHClient()
     7         ssh._transport = transport #  创建对象
     8 
     9         stdin,stdout,stderr = ssh.exec_command('df')
    10         print(stdout.read())
    11 
    12         transport.close()

      2.用公共密钥进行连接

        import paramiko
        
        private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.shh/id_rsa')
        
        #  创建SSH对象
        ssh = paramiko.SSHClient()
        #  允许连接不在know_hosts文件中的主机
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        #  连接服务器
        ssh.connect(hostname='192.168.124.32',port=22,username='name',password='')  #  22是默认端口
    
        #  执行命令
        stdin,stdout,stderr = ssh.exec_command('1s')
        #  获取命令结构
        result = stdout.read()
        #  关闭连接
        ssh.close()
        

    SFTPClient:用于连接远程服务器并执行基本命令(只能用transport连接)
      1.基于用户密码的上传和下载

    import paramiko
    
    transport = paramiko.Transport(('hostname',22))
    transport.connect(username='name',password='')
    
    sftp  = paramiko.SFTPClient.from_transport(transport)
    
    #  将location.py上传到服务器/tmp/test.py
    sftp.put('/tmp/将location.py','/tmp/test.py')
    #  将remove_path 下载到本地 local_path
    sftp.get('remove_path','local_path')
    
    transport.close()

      2.基于公钥密钥上传下载:(同上)

    二、多条命令或操作同时使用

    把连接、上传、下载、执行命令、关闭....等操作创建成方法,再合成一个类,通过对对象的操作来执行想要的功能

  • 相关阅读:
    printf语句中%p ,%#x区别
    Ant执行一个含有main方法的class文件
    aix 扩展文件系统
    ORA-01653:表空间扩展失败的问题(开启表空间自动扩展)
    oracle创建表空间语句分解
    Oracle10g/11g 在SUSE/RHEL上的安装与配置
    15个实用的Linux find命令示例
    suse安装软件命令
    如何把.rar文件隐藏在一个图片内
    windows 7 中将“我的电脑”锁定到任务栏
  • 原文地址:https://www.cnblogs.com/otome/p/12540533.html
Copyright © 2011-2022 走看看