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()
来源:https://www.cnblogs.com/RomanticYori/p/6417515.html