• paramiko 模块安装和使用


    一、Centos安装Paramiko

    1、安装组件
    yum install openssl openssl-devel python-dev   pycrypto -y
    yum install zlib-devel zlib   (必须安装,不安装会报错)
    安装zlib-devel需要对python3.5进行重新编译安装:
    cd /usr/local/src/Python-3.5.1
    ./configure
    make & make install
    2、安装setuptools-19.6: wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26 tar -zxvf setuptools-19.6.tar.gz cd setuptools-19.6 python3 setup.py build python3 setup.py install
    3、安装paramiko
    下载:http://pan.baidu.com/s/1dFKYNq5 密码:y2ml
    tar zxvf paramiko-1.14.0.tar.gz cd paramiko-1.14.0 python3 setup.py build sudo python3 setup.py install
    4、报这个错的话: ImportError: No module named 'cryptography' 安装cryptography: pip3 install cryptography
    没有pip3的话在usr/local/Python3.5.1/bin/目录找

     二、Paramiko的使用:

    1、基于账号密码的登录:

    import paramiko
    #创建SSH对象
    ssh = paramiko.SSHClient()
    #允许不在know_host文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    #连接服务器
    ssh.connect(hostname='192.168.71.3',port=22,username='root',password='zedata')
    #获取命令结果
    stdin,stdout,stderr = ssh.exec_command('df -h')
    print(stdout.read().decode())  #输出结果
    print(stderr.read().decode())  #输出错误结果
    ssh.close()

    2、基于公钥的连接:

    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='192.168.71.2', port=22, username='root', pkey=private_key)   #注若遇到TypeError: connect() got an unexpected keyword argument 'key' 这个错误,将key改为pkey。
    # 执行命令
    stdin, stdout, stderr = ssh.exec_command('df')
    # 获取命令结果
    print(stdout.read().decode())
    # 关闭连接
    ssh.close()

    3、基于用户名密码上传下载

    import paramiko
     
    transport = paramiko.Transport(('192.168.71.3',22))
    transport.connect(username='root',password='123')
     
    sftp = paramiko.SFTPClient.from_transport(transport)
    # 将location.py 上传至服务器 /tmp/test.py
    sftp.put('/tmp/location.py', '/tmp/test.py')
    # 将remove_path 下载到本地 local_path
    sftp.get('remove_path', 'local_path')
     
    transport.close()

    4、基于公钥密钥上传下载

    import paramiko
     
    private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
     
    transport = paramiko.Transport(('192.168.71.3', 22))
    transport.connect(username='root', pkey=private_key )
     
    sftp = paramiko.SFTPClient.from_transport(transport)
    # 将location.py 上传至服务器 /tmp/test.py
    sftp.put('/tmp/location.py', '/tmp/test.py')
    # 将remove_path 下载到本地 local_path
    sftp.get('remove_path', 'local_path')
     
    transport.close()

     Paramiko升级(Centos):

    注:有时候paramiko的版本低会出现这个报错:paramiko.SSHException: Incompatible ssh peer (no acceptable kex algorithm)

    pip install --upgrade pip
    pip install paramiko --upgrade
  • 相关阅读:
    Encryption (hard) CodeForces
    cf 1163D Mysterious Code (字符串, dp)
    AC日记——大整数的因子 openjudge 1.6 13
    AC日记——计算2的N次方 openjudge 1.6 12
    Ac日记——大整数减法 openjudge 1.6 11
    AC日记——大整数加法 openjudge 1.6 10
    AC日记——组合数问题 落谷 P2822 noip2016day2T1
    AC日记——向量点积计算 openjudge 1.6 09
    AC日记——石头剪刀布 openjudge 1.6 08
    AC日记——有趣的跳跃 openjudge 1.6 07
  • 原文地址:https://www.cnblogs.com/chimeiwangliang/p/7193187.html
Copyright © 2020-2023  润新知