paramiko

百般思念 提交于 2019-12-28 17:22:20

Paramiko模块批量管理
作用:通过调用ssh协议进行远程机器的批量命令执行,文件发送。



安装paramiko步骤:

1 首先安装pycrypto模块
pip install pycrypto
pip install paramiko

或者下载源码包安装

可能遇到的错误:
error: command "x86_64-linux-gnu-gcc" faild with exit status 1
这个是库文件不全
apt-get install libssl-dev

以下 包要安装:
python-devel
openssl-devel
openssl
gcc
gcc-c++




使用用户名和密码连接远程机器

-----------------------------
一 次的ssh连接
  使用用户名密码

    #!/usr/bin/env python           
    import paramiko
    import sys,os

    host = “192.168.137.110”或者host = sys.argv[1] 代表执行这个文件时,后面跟的第一个参数
    user = "root"
    password = "centos"

    cmd = sys.argv[2] 代表执行这个文件时,后面跟的第二个参数

    s = paramiko.SSHClient()    绑定实例
    s.load_system_host_keys()    加载本机HOST主机文件
    !s.set_missing_host_key_policy(paramiko.AutoAddPolicy())  如果本地没有key,可以让它自己加载

    s.connect(host,22,user,password,timeout=5)    连接远程主机
    stdin,stdout,stderr = s.exec_command(cmd)            执行命令

    cmd_result = stdout.read(),stderr.read()    读取命令

    for line in cmd_result:
        print line
        
    s.close()
    
    
    
二  使用key连接

首先我们要在两台机器之间生成key(ssh-keygen -t rsa),把各自的公钥id_rsa.pub拷贝给对方,实现无密码ssh登录

pkey_file = "/root/.ssh/id_rsa"
key = paramiko.RSAKey.from_private_key_file(pkey_file)
s.connect(host,port,username,pkey=key,timeout=5)



三  SFTP传送文件
    #!/usr/bin/env python
    import os,sys
    import paramiko

    host="localhost"
    user="root"
    password="centos"

    s=paramiko.SSHClient()
    s.load_system_host_keys()
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    t=paramiko.Transport((host,22))
    t.connect(username=user,password=password)    也可以使用key

    sftp=paramiko.SFTPClient.from_trasport(t)
    sftp.get("/tmp/pramiko.py","paramiko.py")   注意:/tmp/paramiko.py是远程目录
    sftp.put("paramiko.py","/tmp/paramiko.py")
    s.close()



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!