Quantcast
Channel: CodeSection,代码区,Python开发技术文章_教程 - CodeSec
Viewing all articles
Browse latest Browse all 9596

python使用paramiko 模块建立ssh通讯

$
0
0
一 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


Viewing all articles
Browse latest Browse all 9596

Trending Articles