Python paramiko模块(实现

发布时间:2019-09-22 07:46:44编辑:auto阅读(1520)

    开发堡垒机之前,先来学习Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作

    安装paramiko模块

    pip3 install paramiko

    基于用户密码方式

    import paramiko
    
    # 创建SSH对象
    ssh = paramiko.SSHClient()
    # 允许连接不在know_hosts文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接服务器
    ssh.connect(hostname="10.0.0.200", port=22, username='root', password='1')
    
    # 执行命令
    # stdin:标准输入(就是你输入的命令);stdout:标准输出(就是命令执行结果);stderr:标准错误(命令执行过程中如果出错了就把错误打到这里),stdout和stderr仅会输出一个
    stdin, stdout, stderr = ssh.exec_command('df')
    # 获取命令结果
    result = (stdout.read().decode('utf-8'))   # 这个有问题,如果执行的命令是错误的,会不显示错误,可以修改一下,先判断stdout有没有值,如果输出没有,就显示错误
    print(result)
    # 关闭连接
    ssh.close()

    基于公钥密钥连接

    import paramiko
    
    # 指定私钥路径
    private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
    
    # 创建SSH对象
    ssh = paramiko.SSHClient()
    # 允许连接不在know_hosts文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接服务器
    ssh.connect(hostname='10.0.0.171', port=22, username='root', pkey=private_key)
    
    # 执行命令
    stdin, stdout, stderr = ssh.exec_command('df')
    # 获取命令结果
    result = stdout.read()
    print(result.decode())
    # 关闭连接
    ssh.close()

关键字

上一篇: A Tour of Go: Basics

下一篇: python 类和对象