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

 

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

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

posted @ 2020-03-21 17:37  otome  阅读(193)  评论(0编辑  收藏  举报