• paramiko 实现ssh登录和sftp登录


    简单ssh登录

    import paramiko
    
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname='192.168.80.200',port=22,username='root',password='123')
    stdin,stdout,stderr = ssh.exec_command('df;top')
    res = stdout.read()+stderr.read()
    print(res.decode())
    #密钥存放于代码中方式
    
    key_str = '''-----BEGIN RSA PRIVATE KEY-----
    MIIEogIBAAKCAQEA1v/Cy/1A6aUvP49THyvfYSYPPw+KAE1RwoyN1EHy2Ul1XZl2
    .
    .
    .
    ShbMOCp5tEvMBhVnFGBBniqALVEaUy2j9dG53kBxVyABJh3DdaI=
    -----END RSA PRIVATE KEY-----'''
    
    private_str = paramiko.RSAKey(file_obj=StringIO(key_str))
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect('192.168.80.200',22,'root',pkey=private_str)
    stdin,stdout,stderr = ssh.exec_command('echo $PATH')
    print(stdout.read().decode())
    

     

    #以下是密钥方式
    
    import paramiko
    
    private_key = paramiko.RSAKey.from_private_key_file("C:\a\a.rsa",'123')    #没有密钥密码可以不用加“,‘123’”
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    ssh.connect(hostname='192.168.200.48',port=22,username='root',pkey=private_key)
    stdin,stdout,stderr = ssh.exec_command('df;top')
    res = stdout.read()+stderr.read()
    print(res.decode())
    

      

     

    简单sftp登录

    import paramiko
    
    transport = paramiko.Transport(('192.168.80.200',22))
    transport.connect(username='root',password='123')
    
    sftp = paramiko.SFTPClient.from_transport(transport)
    
    sftp.get('/root/1','2')
    sftp.put('test.py','/root/3')

    密钥方式SFTP

    #以下是密钥方式
    import paramiko
    private_key = paramiko.RSAKey.from_private_key_file("C:\a\a.rsa",'123')
    
    transport = paramiko.Transport(('192.168.200.48',22))
    transport.connect(username='root',pkey=private_key)
    
    sftp = paramiko.SFTPClient.from_transport(transport)
    
    sftp.get('/home/aa/1','2')
    sftp.put('test.py','/home/aa/3'
    

      

  • 相关阅读:
    node.js---sails项目开发(3)
    node.js---sails项目开发(2)
    基于 phantomjs 的自动化测试---(1)
    node.js---sails项目开发(1)
    mongoose基于mongodb的数据评论设计
    js复杂数据格式提交
    [LeetCode]Rotate Image
    [LeetCode]Minimum Path Sum
    [LeetCode]Generate Parentheses
    [LeetCode]Gray Code
  • 原文地址:https://www.cnblogs.com/alex-hrg/p/9012962.html
Copyright © 2020-2023  润新知