码迷,mamicode.com
首页 > 其他好文 > 详细

paramiko   远程控制模块

时间:2016-08-14 22:29:25      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:python   paramiko   sftpclient   from_transport   


paramiko   远程控制模块


paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,fabric和ansible内部的远程管理就是使用的paramiko来现实。


1.  下载安装


# pycrypto,由于 paramiko 模块内部依赖pycrypto,所以先下载安装pycrypto

 

# 下载安装 pycrypto

wget http://files.cnblogs.com/files/wupeiqi/pycrypto-2.6.1.tar.gz

tar -xvf pycrypto-2.6.1.tar.gz

cd pycrypto-2.6.1

python setup.py build

python setup.py install

 

# 进入python环境,导入Crypto检查是否安装成功

 

# 下载安装 paramiko

wget http://files.cnblogs.com/files/wupeiqi/paramiko-1.10.1.tar.gz

tar -xvf paramiko-1.10.1.tar.gz

cd paramiko-1.10.1

python setup.py build

python setup.py install

 

# 进入python环境,导入paramiko检查是否安装成功


2. 使用模块

1)执行命令 - 通过用户名和密码连接服务器

import paramiko

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(‘192.168.1.108‘, 22, ‘用户名‘, ‘密码‘)

stdin, stdout, stderr = ssh.exec_command(‘df‘)

print stdout.read()

ssh.close();


2)执行命令 - 过密钥链接服务器

import paramiko

private_key_path = ‘/home/auto/.ssh/id_rsa

key = paramiko.RSAKey.from_private_key_file(private_key_path)


ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(‘主机名 ‘, 端口, ‘用户名‘, key)


stdin, stdout, stderr = ssh.exec_command(‘df‘)

print stdout.read()

ssh.close()


3)上传或者下载文件 - 通过用户名和密码

import os,sys

import paramiko


conn = paramiko.Transport((‘192.168.20.21‘,22))

conn.connect(username=‘用户名‘,password=‘密码‘)

sftp = paramiko.SFTPClient.from_transport(conn)

sftp.put(‘/tmp/test.py‘,‘/tmp/test.py‘) 

conn.close()


import os,sys

import paramiko


conn = paramiko.Transport((‘192.168.20.21‘,22))

conn.connect(username=‘用户名‘,password=‘密码‘)

conn = paramiko.SFTPClient.from_transport(conn)

sftp.get(‘/tmp/test.py‘,‘/tmp/test2.py‘)

conn.close()



4)上传或下载文件 - 通过密钥


import paramiko


pravie_key_path = ‘/home/auto/.ssh/id_rsa

key = paramiko.RSAKey.from_private_key_file(pravie_key_path)


conn = paramiko.Transport((‘192.168.20.21‘,22))

conn.connect(username=‘用户名‘,pkey=key)


sftp = paramiko.SFTPClient.from_transport(conn)

sftp.put(‘/tmp/test3.py‘,‘/tmp/test3.py‘) 


conn.close()


import paramiko


pravie_key_path = ‘/home/auto/.ssh/id_rsa‘

key = paramiko.RSAKey.from_private_key_file(pravie_key_path)


conn = paramiko.Transport((‘192.168.20.21‘,22))

conn.connect(username=‘用户名‘,pkey=key)


sftp = paramiko.SFTPClient.from_transport(conn)

sftp.get(‘/tmp/test3.py‘,‘/tmp/test4.py‘) 


conn.close()


本文出自 “纷繁中享受技术的简单喜悦” 博客,请务必保留此出处http://51enjoy.blog.51cto.com/8393791/1837839

paramiko   远程控制模块

标签:python   paramiko   sftpclient   from_transport   

原文地址:http://51enjoy.blog.51cto.com/8393791/1837839

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!