Python paramiko

2022-06-23 18:27:12 字數 3564 閱讀 8747

一、開發堡壘機之前,先來學習python的paramiko模組,該模組基於ssh用於連線遠端伺服器並執行相關操作。

二、sshclient用於連線遠端伺服器並執行基本命令。

1、基於公鑰金鑰連線 

1

#!/usr/bin/python2#

-*- coding : utf-8 -*-3#

4#5#

6#這是我用來練習python paramiko的測試指令碼78

import

paramiko

910 private_key = paramiko.rsakey.from_private_key_file("

/home/wohaoshuai/.ssh/id_rsa

") #

指定金鑰檔案路徑

1112

#建立ssh物件

13 ssh =paramiko.sshclient()

1415

#允許連線不在know_hosts檔案中的主機

16 ssh.set_missing_host_key_policy(paramiko.autoaddpolicy()) #

跳過詢問yes或no步驟

1718

#連線伺服器

19 ssh.connect(hostname="

192.168.10.44

",port=22,username="

wohaoshuai

",key=private_key)

2021

#執行命令

22 stdin,stdout,stderr = ssh.exec_command("df"

)2324#

獲取命令結果

25 result,err =stdout.read() , stderr.read()

26if

noterr:

27print

(result)

28else:print

(err)29#

關閉連線

30 ssh.close()

2、基於使用者名稱密碼驗證 

1

#!/usr/bin/python2#

-*- coding : utf-8 -*-3#

4#5#

6#這是我用來練習python paramiko的測試指令碼78

import

paramiko910

#建立ssh物件

11 ssh =paramiko.sshclient()

1213

#允許連線不在know_hosts檔案中的主機

14 ssh.set_missing_host_key_policy(paramiko.autoaddpolicy()) #

跳過詢問yes或no步驟

1516

#連線伺服器

17 ssh.connect(hostname="

192.168.10.44

",port=22,username="

root

",password="

123456")

1819

#執行命令

20 stdin,stdout,stderr = ssh.exec_command("df"

)2122#

獲取命令結果

23 result,err = stdout.read().decode("

utf-8

") , stderr.read().decode("

utf-8")

24if

noterr:

25print

(result)

26else:print

(err)27#

關閉連線

28 ssh.close()

3、使用filter裝逼

1

#-*- coding : utf-8 -*-2#

3#4#

5#這是我用來練習mysql操作的測試指令碼67

import

paramiko89

import

paramiko

1011

#建立ssh物件

12 ssh =paramiko.sshclient()

1314

#允許連線不在know_hosts檔案中的主機

15 ssh.set_missing_host_key_policy(paramiko.autoaddpolicy()) #

跳過詢問yes或no步驟

1617

#連線伺服器

18 ssh.connect(hostname="

192.168.10.44

",port=22,username="

root

",password="

123456")

1920

#執行命令

21 stdin,stdout,stderr = ssh.exec_command("df"

)2223#

獲取命令結果

2425 result = list(filter(lambda x: x is

not none,[stdout.read().decode("

utf-8

"),stderr.read().decode("

utf-8

")]))[0] #

將後面列表中的兩個值賦值給x,如果x不為none則留在列表中,否則就過濾掉

26print

(result)27#

result,err = stdout.read().decode("utf-8") , stderr.read().decode("utf-8")28#

if not err:29#

print(result)30#

else:print(err)31#

關閉連線

32 ssh.close()

1

#-*- coding : utf-8 -*-2#

3#4#

5#這是我用來練習mysql操作的測試指令碼67

8import

paramiko

910 transport = paramiko.transport(('

192.168.10.44

',22))

11 transport.connect(username="

root

",password="

123456")

12 sftp =paramiko.sftpclient.from_transport(transport)

1314

#將當前路徑aaa.txt上傳至伺服器 /tmp/test.py

15 sftp.put("

aaa.txt

","/tmp/test.py")

1617

#18 sftp.get("

/tmp/test.py

","bbb.txt")

1920 transport.close()

python paramiko操作linux

paramiko簡述 paramiko是基於python實現的ssh2遠端安全連線,支援認證及金鑰方式。可以實現遠端命令執行 檔案傳輸 中間ssh 等功能,相對於pexpect,封裝的層次更高,更貼近ssh協議的功能 目前需要實現如下需求 1 python遠端連線linux主機執行命令獲取返回結果 ...

Python的paramiko模組ssh操作

sshclient 用於連線遠端伺服器並執行基本命令 基於使用者名稱密碼連線 12 3456 78910 1112 1314 1516 im...

python ssh之paramiko模組使用

1 安裝 sudo pip install paramiko 2 連線到linux伺服器 方法一 paramiko util log to file ssh log 寫日誌檔案 client paramiko sshclient client set missing host key policy ...