1. 程式人生 > >paramiko 模塊遠程管理 liunx 服務器

paramiko 模塊遠程管理 liunx 服務器

python paramiko

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") 本地路徑 ,服務器路徑


paramiko 模塊遠程管理 liunx 服務器