• paramiko模块


    paramiko模块封装了ssh,sftp等连接方法,常用于程序构建ssh等连接

    1. paramiko 连接ssh服务的简单使用

      1.1 连接方式1

    # -*- coding:utf-8 -*-
    # Author:Wong Du
    
    import paramiko
    
    
    # 创建SSHClient对象
    ssh = paramiko.SSHClient()
    
    # 允许连接不在know_hosts的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    # ssh连接服务器
    ssh.connect(hostname="10.0.0.105", port=22, username='Caiyun', password='123456')
    print("33[32;1m连接成功了...33[0m")
    
    # 获取命令的三个返回值标准输入、标准输出、标准错误输出
    stdin, stdout, stderr = ssh.exec_command('cats /etc/passwd')
    '''
    # low one
    # print(stdout.read().decode())
    # print(stderr.read().decode())
    # print(stdout.read().decode()) if stdout.read() else print(stderr.read().decode())
    '''
    '''
    # low two
    rightout = stdout.read().decode()
    errorout = stderr.read().decode()
    print(rightout) if rightout else print(errorout)
    '''
    
    # High bige
    rightOut, errorOut = stdout.read(), stderr.read()
    result = rightOut if rightOut else errorOut
    print(result.decode())
    
    
    ssh.close()

      1.2 连接方式2

    # -*- coding:utf-8 -*-
    # Author:Wong Du
    
    import paramiko
    
    # 封装ssh连接和认证
    transport = paramiko.Transport(('10.0.0.105', 22))
    transport.connect(username='Caiyun', password='123456')
    
    # 创建sshClient对象
    ssh = paramiko.SSHClient()
    # 建立ssh连接
    ssh._transport = transport
    
    stdin, stdout, stderr = ssh.exec_command('cat /etc/passwd')
    
    rightOut, errorOut = stdout.read(), stderr.read()
    result = rightOut if rightOut else errorOut # 三元运算
    print(result.decode())

    2. paramiko SFTP服务的简单使用

    # -*- coding:utf-8 -*-
    # Author:Wong Du
    
    
    import paramiko
    
    # 封装ssh连接和认证身份
    transport = paramiko.Transport( ('10.0.0.105', 22))
    transport.connect(username='Caiyun', password='123456')
    
    # 建立连接
    sftp = paramiko.SFTPClient.from_transport(transport)
    
    try:
        sftp.put('__init__.py', '/home/Caiyun/TEST/dfdsf')
    except Exception as e:
        print('33[31;1mError33[0m', e)
    
    transport.close()

    3. 用key文件认证建立连接

    import paramiko
    
    ssh = paramiko.SSHClient()
    
    private_key = paramiko.RSAKey.from_private_key_file('id_rsa')
    
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    
    ssh.connect(hostname='10.0.0.105', port=22, username='Caiyun', pkey=private_key)
    
    stdin, stdout, stderr = ssh.exec_command('df')
    rightOut, errorOut = stdout.read(), stderr.read()
    result = rightOut if rightOut else errorOut
    print(result.decode())
  • 相关阅读:
    codeforces 169 div2 C
    poj 1062(最短路)
    sgu 118
    sgu 101
    poj 2446二分图匹配
    ural 1129 (求数据)
    C#中抽象类和接口的区别(转)
    在.net(C# or vb.net)中,Appplication.Exit 还是 Form.Close有什么不同?
    一道爱出的题目,就是前面两个数相加 用递归方法实现
    C#冒泡排序
  • 原文地址:https://www.cnblogs.com/Caiyundo/p/9482563.html
Copyright © 2020-2023  润新知