Python parami,,一、使用SSHCli


一、使用
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 paramikotransport = paramiko.Transport((‘hostname‘,22))transport.connect(username=‘name‘,password=‘‘)sftp  = paramiko.SFTPClient.from_transport(transport)#  将location.py上传到服务器/tmp/test.pysftp.put(‘/tmp/将location.py‘,‘/tmp/test.py‘)#  将remove_path 下载到本地 local_pathsftp.get(‘remove_path‘,‘local_path‘)transport.close()

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

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

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

Python parami

评论关闭