paramiko的安装与使用

Posted 孔扎根

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了paramiko的安装与使用相关的知识,希望对你有一定的参考价值。

paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接,支持在远程登录服务器执行命令和上传下载文件的功能。

 

安装

pycrypto下载地址:

http://www.voidspace.org.uk/python/modules.shtml#pycrypto

 

ecdsa下载地址:

https://pypi.python.org/pypi/ecdsa/0.9

 

paramiko安装:pip install paramiko

 

登陆

基于用户名密码的SSHClient登陆

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__Author__ = \'kongZhaGen\'
import paramiko

# 建立SSH服务器的高级会话模式
ssh = paramiko.SSHClient()
# 允许连接不在known_hosts中的服务器
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 通过用户名及密码登陆服务器
ssh.connect(hostname=\'172.10.228.2\', port=22, username=\'root\', password=\'654321\')
# 执行结果返回三个值
stdin, stdout, stderr = ssh.exec_command(\'df -h\')
print stdout.read()
print \'------------------\'
print stderr.read()
ssh.close()

  结果

 

 基于RSAKEY的SSHClient登陆

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__Author__ = \'kongZhaGen\'
import paramiko

# 本地可用的私钥文件路径,生成私钥时如果有密码,需要加password参数
key = paramiko.RSAKey.from_private_key_file(\'id_rsa.txt\')
# 建立SSH服务器的高级会话模式
ssh = paramiko.SSHClient()
# 允许连接不在known_hosts中的服务器
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 通过用户名及密码登陆服务器
ssh.connect(hostname=\'192.168.56.41\', port=22, username=\'root\', pkey=key)
# 执行结果返回三个值
stdin, stdout, stderr = ssh.exec_command(\'df -h\')
print stdout.read()
print \'------------------\'
print stderr.read()
ssh.close()

  结果

 

基于用户名密码的Socket连接

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__Author__ = \'kongZhaGen\'
import paramiko

# 初始化一个paramiko的Socket对象
trans = paramiko.Transport((\'192.168.56.41\', 22))
# 建立基于Socket的ssh2连接
trans.connect(username=\'root\', password=\'rootroot\')
# 建立SSH服务器的高级会话
ssh = paramiko.SSHClient()
# 将Socket连接赋与ssh会话
ssh._transport = trans
# 通过SSH会话执行命令
stdin, stdout,stderr = ssh.exec_command("df -h")
print stdout.read()

# 会话关闭
ssh.close()
trans.close()

  

基于RSA的SOCKET连接

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__Author__ = \'kongZhaGen\'
import paramiko

# 私钥的本地路径
key = paramiko.RSAKey.from_private_key_file("id_rsa.txt")
# 初始化一个paramiko的Socket对象
trans = paramiko.Transport((\'192.168.56.41\', 22))
# 建立基于Socket的ssh2连接
trans.connect(username=\'root\', pkey=key)
# 建立SSH服务器的高级会话
ssh = paramiko.SSHClient()
# 将Socket连接赋与ssh会话
ssh._transport = trans
# 通过SSH会话执行命令
stdin, stdout,stderr = ssh.exec_command("df -h")
print stdout.read()

# 会话关闭
ssh.close()
trans.close()

  

 数据传输

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__Author__ = \'kongZhaGen\'
import paramiko

# 私钥的本地路径
key = paramiko.RSAKey.from_private_key_file("id_rsa.txt")
# 初始化一个paramiko的Socket对象
trans = paramiko.Transport((\'192.168.56.41\', 22))
# 建立基于Socket的ssh2连接
trans.connect(username=\'root\', pkey=key)
# 建立一个SFTP会话,建立一个SFTP通道,用于传输数据
sft = paramiko.SFTPClient.from_transport(trans)
# sft.put("kongtest.py","/root/kongtest.py")
sft.get(\'/root/install.log\',\'install.log\')
trans.close()

  

  

以上是关于paramiko的安装与使用的主要内容,如果未能解决你的问题,请参考以下文章

paramiko安装与问题

Paramiko模块,用python代码连接服务器执行命令

python paramiko与linux的连接

Python paramiko安装报错

Python学习—paramiko模块实现简单的ssh与sftp

SSH与Python模块paramiko