• python_paramiko模块


    利用paramiko模块模拟ssh执行命令(明文用户名密码):

    import paramiko
    ssh = paramiko.SSHClient()    #创建ssh对象
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)   #当找不到验证时自动添加
    ssh.connect(hostname='192.168.1.104',port=22,username='songsa',password='123456')   #连接服务器
    data = input('>>>')
    std_in,std_out,std_err = ssh.exec_command(data)   #执行命令
    out,err = std_out.read(),std_err.read()
    result = out if out else err  #如果执行正确 result= stdout.read(),否则 result= stderr.read()
    print(result.decode())

    利用paramiko模块模拟ftp来上传下载(明文用户名密码):

    import paramiko
    transport = paramiko.Transport(('192.168.1.104',22))   #创建实例
    transport.connect(username='root',password='123456')  #建立连接
    sftp = paramiko.SFTPClient.from_transport(transport)  #将创建的实例当作参数传给paramiko.SFTPClient.from_transport,交互实在这里边进行的
    sftp.put(r'C:UserssongsaDesktoppython.tgz','/home/songsa/python_test/python.tgz') #上传
    sftp.get('/home/songsa/python_test/python.tgz',r'C:UserssongsaDesktoppython.tgz') #下载
    transport.close()

    利用paramiko模块模拟ssh执行命令(基于公钥):

    import paramiko
    private_key = paramiko.RSAKey.from_private_key_file(r'C:UserssongsaPycharmProjectsuntitled3.21id_rsa')
    ssh = paramiko.SSHClient()  #创建SSH对象
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy) #允许连接不在know_hosts文件中的主机
    ssh.connect(hostname='192.168.1.104',port=22,username='songsa',pkey=private_key)#连接服务器
    stdin,stdout,stderr =  ssh.exec_command('pwd') #执行命令
    result = stdout.read()
    print(result.decode())
    ssh.close()

    利用paramiko模块模拟ftp来上传下载(基于公钥):

    import paramiko
    private_key = paramiko.RSAKey.from_private_key_file(r'C:UserssongsaPycharmProjectsuntitled3.21id_rsa')
    transport = paramiko.Transport(('172.20.0.158', 22))
    transport.connect(username='songsa', pkey=private_key)
    sftp = paramiko.SFTPClient.from_transport(transport)
    sftp.get('/home/songsa/.ssh/id_rsa','id_rsa.txt')
    transport.close()
  • 相关阅读:
    rabbitmq学习之路(五)
    rabbitmq学习之路(四)
    rabbitmq学习之路(三)
    rabbitmq学习之路(二)
    rabbitmq学习之路(一)
    回忆一下数据库中的锁问题
    feign+hystrix 进行服务降级
    vue.js之过滤器,自定义指令,自定义键盘信息以及监听数据变化
    node.js之用ajax获取数据和ejs获取数据
    用node.js实现mvc相册资源管理器
  • 原文地址:https://www.cnblogs.com/ss-py/p/8623851.html
Copyright © 2020-2023  润新知