• 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.基于公钥密钥上传下载:(同上)

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

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

  • 相关阅读:
    Java复习笔记8--内部类
    Java复习笔记7--Java封装
    Java复习笔记6--Final&Static
    Java复习笔记5--equals方法总结
    Java复习笔记4--实现多重继承
    Java复习笔记3--强制类型转换
    Java复习笔记2--匿名类和多态
    python版本管理--pyenv
    gensim自然语言处理(续)
    gensim自然语言处理
  • 原文地址:https://www.cnblogs.com/otome/p/12540533.html
Copyright © 2020-2023  润新知