paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。
由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一。
一、远程连接服务器
方式1
import paramiko #实例化客户端 ssh = paramiko.SSHClient() #设置默认授信列表 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 设置连接信息 ssh.connect( hostname="192.168.10.32", port=22, username="root", password="123456" ) # 输入远程需要执行的命令 stdin,stdout,stderr = ssh.exec_command("ls") #stdin 需要输入的部分 #stdout 返回输出的部分 #stderr 错误部分 print (stdout.read()) ssh.close()
方式2
#coding:utf-8 import paramiko trans = paramiko.Transport(("192.168.10.32",22)) trans.connect(username="root",password="123456") ssh = paramiko.SSHClient()#实例化一个客户端 ssh._transport = trans #设置客户端使用该通道 shell = ssh.invoke_shell()#实例化一个shell shell.settimeout(10)#设置超时时间 shell.send("ls\n") while True: recv = shell.recv(9999) print (recv) ssh.close()
二、远程连接服务器创建交互式的shell 终端
trans = paramiko.Transport(("192.168.10.32",22)) trans.connect(username = "root",password = "123456") #登录前必须实例化一个客户端 ssh = paramiko.SSHClient() ssh._transport=trans#设置客户端使用该通道 shell = ssh.invoke_shell()#实例化一个shell shell.settimeout(0.1) #设置超时等待时间 shell.send(raw_input(">>>")+"\n") while True: try: recv = shell.recv(99999) if recv: print (recv) else: continue except: command = raw_input(">>>") shell.send(command+"\n") if command == "exit": break ssh.close()
三 、使用 paramiko 模块上传下载文件
#上传文件 trans = paramiko.Transport(("192.168.10.32",22)) trans.connect(username="root",password="123456") sftp = paramiko.SFTPClient.from_transport(trans)#实例化一个文件上传下载的客户端 下载文件 将服务器的文件下载到本地 sftp.get("/root/11.py","aa.py") # 服务器路径 ,本地路径 trans.close() 上传文件文件 将本地文件上传到服务器上 sftp.put("404.html","/root/404.html") 本地路径 ,服务器路径
时间: 2024-10-09 01:17:52