• python之 paramiko模块 连接服务器


    paramiko是一个基于SSH用于连接远程服务器并执行相关操作(SSHClient和SFTPClinet,即一个是远程连接,一个是上传下载服务),使用该模块可以对远程服务器进行命令或文件操作。

    下载安装

    pycrypto,由于 paramiko 模块内部依赖pycrypto,所以先下载安装pycrypto
    pip3 install pycrypto
    pip3 install paramiko

    1.账号密码连接

    import logging
    import sys
    
    import paramiko
    
    
    def get_data():
        list_ = list()
        try:
            ssh_client = paramiko.SSHClient()
            ssh_client.load_system_host_keys()
            ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            ssh_client.connect("192.168.xx.xx", 22, 'root', 'admin')
            # 在command命令最后加上 get_pty=True,执行多条命令 的话用;隔开,另外所有命令都在一个大的单引号范围内引用
            std_in, std_out, std_err = ssh_client.exec_command(
                'oc login https://api.ocp4.gzky.com:6443 --username=admin --password=redhat &> /dev/null && '
                'tk=$(oc sa get-token prometheus-k8s -n openshift-monitoring) && '
                'curl -H "Authorization: Bearer $tk" https://192.168.xx.xx:xxxx/metrics -k',
                get_pty=True)
            for line in std_out:
                list_.append(line.strip("
    "))
        except Exception as e:
            logging.error('class path: %s;function name: %s;error message:%s' %
                          (__name__, sys._getframe().f_code.co_name, e.message), exc_info=True)
        return list_

      

    2.公钥秘钥连接

    import paramiko
    
    private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')
    # 创建SSH对象
    ssh = paramiko.SSHClient()
    # 允许连接不在know_hosts文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接服务器
    ssh.connect(hostname='c1.salt.com', port=22, username='wupeiqi', key=private_key)
    # 执行命令
    stdin, stdout, stderr = ssh.exec_command('df')
    # 获取命令结果
    result = stdout.read()
    # 关闭连接
    ssh.close()

     

  • 相关阅读:
    其他权益工具
    2股缩为1股
    ubuntu查看网络流量
    修改iphone hosts文件
    Win10 家庭中文版HOST文件更改
    债权投资和其他债权投资的区别
    win10 Administrator没有管理员权限解决方案
    实际发放股票股利
    Could not get lock /var/lib/dpkg/lock
    R语言代写Gibbs抽样的贝叶斯简单线性回归仿真分析
  • 原文地址:https://www.cnblogs.com/shangwei/p/13857371.html
Copyright © 2020-2023  润新知