Paramiko 模块

paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能。这是一个第三方的软件包,使用之前需要安装。


安装方法 pip install paramiko 


模块使用介绍场景


1、在windows 下面远程执行liunx 主机的命令

连接方法一、

#coding:utf-8
import paramiko
ssh = paramiko.SSHClient()

known_hosts = paramiko.AutoAddPolicy() ##默认的受信列表
ssh.set_missing_host_key_policy(known_hosts) ##采用默认授信列表

#建立连接
ssh.connect(
    hostname = "192.168.10.31",
    port = 22,
    username = "root",
    password = "1111"
)
stdin,stdout,stderr = ssh.exec_command("free -m ")
print (stdout.read())
ssh.close()

连接方法二、

trans = paramiko.Transport(("192.168.10.31",22))
trans.connect(username = "root",password = "1111")
#登录必须先实例化一个客户端
ssh = paramiko.SSHClient()
ssh._transport = trans #设置客户端使用该通道
stdin,stdout,stderr = ssh.exec_command("free -m ")#远程执行命令
print (stdout.read())
ssh.close()

#模拟服务器上传和下载功能

#coding:utf-8
import paramiko

trans = paramiko.Transport(("192.168.10.31"),22)
trans.connect(username = "root",password = "1111")
trans = paramiko.Transport(("192.168.10.31",22))
trans.connect(username = "root",password = "1111")
sftp = paramiko.SFTPClient.from_transport(trans)#实例化文件一个上传下载的客户端
sftp = paramiko.SFTPClient.from_transport(trans)
#上传
#get从远程服务器上下载文件到本地
sftp.get("/root/Desktop/test.py","t1.py")
#下载
#put 上传本地文件到远程服务器
sftp.put("by.txt","/root/Desktop/beiying.txt")