一 paramiko简介
下文是我从别人博客那里copy下来的:
paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。
由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS
X, Windows等,paramiko都可以支持,因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一。
简单来说,paramiko就是用来建立ssh通讯的。
二 安装paramiko
一开始我使用linuxmint的软件源安装的,之后的程序出现了传参数错误,事实证明这是个大坑,必须要通过编译的方式安装。
1、paramiko的下载地址是https://github.com/paramiko/paramiko/releases,下载最新版本
2、用sudo apt-get –purge remove python-paramiko彻底清除旧版本的paramiko,没安装过旧版的童鞋跳过此步骤
3、进入解压好的paramiko路径并使用sudo python setup.py install来安装paramiko
三 paramiko的使用方法
client = SSHClient() #创建ssh客户端对象 client.load_system_host_keys() #从系统文件里加载密钥 client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #设置没有密钥 client.connect('ssh.example.com') #连接到指定服务器 stdin, stdout, stderr = client.exec_command('ls -l') #执行命令
四 简单的ssh通讯脚本
#!/usr/bin/env python import paramiko import sys,os host = sys.argv[1] user = 'root' password = 'XXXXXX' cmd=sys.argv[2] s=paramiko.SSHClient() s.load_system_host_keys() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 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()
五 执行脚本
$ python ssh.py 172.18.55.2 df Filesystem 1K-blocks Used Available Use% Mounted on udev 1956012 0 1956012 0% /dev tmpfs 395484 6612 388872 2% /run /dev/sda2 19091584 10027836 8070880 56% / tmpfs 1977412 42968 1934444 3% /dev/shm tmpfs 5120 4 5116 1% /run/lock tmpfs 1977412 0 1977412 0% /sys/fs/cgroup tmpfs 262144 16240 245904 7% /tmp /dev/sda1 94371836 46849248 47522588 50% /media/sda1 /dev/sdb1 976759804 837472068 139287736 86% /media/STORE cgmfs 100 0 100 0% /run/cgmanager/fs tmpfs 395484 56 395428 1% /run/user/1000 tmpfs 395484 4 395480 1% /run/user/0
原创文章,作者:realmaster,如若转载,请注明出处:http://www.178linux.com/70658