亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Python > 正文

使用Python paramiko模塊利用多線程實現ssh并發執行操作

2024-09-09 19:02:56
字體:
來源:轉載
供稿:網友

1.paramiko概述

ssh是一個協議,OpenSSH是其中一個開源實現,paramiko是Python的一個庫,實現了SSHv2協議(底層使用cryptography)。

有了Paramiko以后,我們就可以在Python代碼中直接使用SSH協議對遠程服務器執行操作,而不是通過ssh命令對遠程服務器進行操作。

由于paramiko屬于第三方庫,所以需要使用如下命令先行安裝

2.安裝paramiko

pip install paramiko

3.常用方法

connect():實現遠程服務器的連接與認證,對于該方法只有hostname是必傳參數。

常用參數

hostname 連接的目標主機

port=SSH_PORT 指定端口

username=None 驗證的用戶名

password=None 驗證的用戶密碼

pkey=None 私鑰方式用于身份驗證

key_filename=None 一個文件名或文件列表,指定私鑰文件

timeout=None 可選的tcp連接超時時間

allow_agent=True, 是否允許連接到ssh代理,默認為True 允許

look_for_keys=True 是否在~/.ssh中搜索私鑰文件,默認為True 允許

compress=False, 是否打開壓縮

set_missing_host_key_policy():設置遠程服務器沒有在know_hosts文件中記錄時的應對策略。目前支持三種策略:

設置連接的遠程主機沒有本地主機密鑰或HostKeys對象時的策略,目前支持三種:

AutoAddPolicy 自動添加主機名及主機密鑰到本地HostKeys對象,不依賴load_system_host_key的配置。即新建立ssh連接時不需要再輸入yes或no進行確認

WarningPolicy 用于記錄一個未知的主機密鑰的python警告。并接受,功能上和AutoAddPolicy類似,但是會提示是新連接

RejectPolicy 自動拒絕未知的主機名和密鑰,依賴load_system_host_key的配置。此為默認選項

exec_command():在遠程服務器執行Linux命令的方法。

 如  exec_command("ls /")  exec_command("df -h")

4.使用方法

import paramiko  # 實例化SSHClient  client = paramiko.SSHClient()   # 自動添加策略,保存服務器的主機名和密鑰信息,如果不添加,那么不再本地know_hosts文件中記錄的主機將無法連接  client.set_missing_host_key_policy(paramiko.AutoAddPolicy())   # 連接SSH服務端,以用戶名和密碼進行認證  client.connect(hostname='192.168.1.1', port=22, username='root', password='123456')   # 打開一個Channel并執行命令  stdin, stdout, stderr = client.exec_command('df -h ') # stdout 為正確輸出,stderr為錯誤輸出,同時是有1個變量有值   # 打印執行結果  print(stdout.read().decode('utf-8'))   # 關閉SSHClient  client.close()

5.利用多線程實現ssh并發訪問

要求:

編寫一個remote_comm.py腳本,實現以下功能:

在文件中取出所有遠程主機IP地址 在shell命令行中接受遠程服務器IP地址文件、遠程服務器密碼以及在遠程主機上執行的命令 通過多線程實現在所有的遠程服務器上并發執行命令

步驟一:編寫腳本

#!/usr/bin/env python3import sysimport getpassimport paramikoimport threadingimport os#創建函數實現遠程連接主機、服務器密碼以及在遠程主機上執行的命令的功能def remote_comm(host, pwd, command):#創建用于連接ssh服務器的實例  ssh = paramiko.SSHClient()#設置自動添加主機密鑰  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#連接ssh服務器,添加連接的主機、用戶名、密碼填好,捕獲異常,有異常則跳出函數  try:   ssh.connect(hostname=host, username='root', password=pwd)  except:   return #在ssh服務器上執行指定命令,返回3項類文件對象,分別是,輸入、輸出、錯誤  stdin, stdout, stderr = ssh.exec_command(command)#讀取輸出  out = stdout.read()#讀取錯誤  error = stderr.read()#如果有輸出  if out:#打印主機輸出內容    print('[%s] OUT:/n%s' % (host, out.decode('utf8')))#如果有錯誤  if error:#打印主機錯誤信息    print('[%s] ERROR:/n%s' % (host, error.decode('utf8')))#程序結束  ssh.close()if __name__ == '__main__':#設定sys.argv長度,確保remote_comm函數中參數數量  if len(sys.argv) != 3:    print('Usage: %s ipaddr_file "command"' % sys.argv[0])    exit(1)#判斷命令行上輸入如果不是文件,確保輸入的是文件   if not os.path.isfile(sys.argv[1]):    print('No such file:', sys.argv[1])    exit(2)#fname為存儲遠程主機ip的文件,用sys.argv方法,可以在執行腳本時再輸入文件名,更為靈活  fname = sys.argv[1]#command為在遠程主機上執行的命令,用sys.argv方法,可以在執行腳本時再輸入相應命令,command為remote_comm函數第三個參數  command = sys.argv[2]#通過getpass輸入遠程服務器密碼,pwd為remote_comm函數第二個參數  # pwd = getpass.getpass()  pwd='Taren1.bgsn'#打開存有遠程主機ip的文件  with open(fname) as fobj:#將遍歷文件將ip以列表形式存入ips,line.strip()可以去掉每行ip后/n    ips = [line.strip() for line in fobj]#循環遍歷列表,獲取ip地址,ip為remote_comm函數第一個參數  for ip in ips:#將讀取到的ip地址作為remote_comm函數實際參數傳遞給函數,ips中有幾個ip地址循環幾次#創建多線程    t = threading.Thread(target=remote_comm, args=(ip, pwd, command))#啟用多線程    t.start()
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
伊人青青综合网站| 精品国偷自产在线视频99| 国产91在线高潮白浆在线观看| 欧美日韩国产123| 国产精品无码专区在线观看| 日韩av中文字幕在线免费观看| 欧美高清视频一区二区| 日韩电影免费观看在线观看| 亚洲va久久久噜噜噜| 欧美日本国产在线| 国产91精品久久久久久久| 狠狠躁18三区二区一区| 亚洲福利视频网| 日韩精品免费综合视频在线播放| 欧美肥老妇视频| 日本久久久久亚洲中字幕| 欧美中文字幕在线观看| 国产日产欧美精品| 日韩av中文字幕在线播放| 国产精品久久精品| 91日本视频在线| 高清在线视频日韩欧美| 国产成人拍精品视频午夜网站| 久久精品中文字幕免费mv| 亚洲成人激情视频| 成人黄色午夜影院| 久久久久国色av免费观看性色| 国产成人精品一区二区三区| 久久精品小视频| 日本韩国在线不卡| 日韩hd视频在线观看| 国产精品欧美一区二区三区奶水| 久久精品99久久久久久久久| 欧美日韩国产综合视频在线观看中文| 尤物tv国产一区| 欧美激情乱人伦一区| 亚洲精品国产精品久久清纯直播| 亚洲欧美在线免费观看| 亚洲视频电影图片偷拍一区| 91精品美女在线| 欧美视频一区二区三区…| 国产成人综合精品在线| 久久成人av网站| 欧美一级大胆视频| 姬川优奈aav一区二区| 亚洲一区二区久久久| 97精品国产aⅴ7777| 青青久久av北条麻妃海外网| 成人黄色免费在线观看| 最新国产精品亚洲| 欧美日韩性视频| 精品国产电影一区| 国产一级揄自揄精品视频| 日韩大陆欧美高清视频区| 热久久这里只有精品| 精品中文字幕久久久久久| 亚洲第一天堂av| 国产精品福利在线观看网址| 欧美性受xxxx黑人猛交| 91在线色戒在线| 亚洲a中文字幕| 国产在线播放91| 亚洲精品www久久久久久广东| 日韩性xxxx爱| 国产精品一区二区三区免费视频| 国产一区二区香蕉| 中文字幕久久亚洲| 91av福利视频| 97国产suv精品一区二区62| 操人视频在线观看欧美| 91亚洲人电影| 成人网在线免费观看| 亚洲第一福利网站| 国产精品免费小视频| 亚洲美女喷白浆| 欧美日韩综合视频网址| 正在播放欧美视频| 亚洲综合在线中文字幕| 亚洲成人a**站| 亚洲综合色激情五月| 北条麻妃99精品青青久久| 久久久久久国产免费| 欧美日韩精品二区| 91久久久亚洲精品| 色综合天天综合网国产成人网| 亚洲国产欧美精品| 国产成人精品久久二区二区91| 久久视频国产精品免费视频在线| 欧美视频专区一二在线观看| 91精品在线播放| 日韩欧美成人免费视频| 亚洲欧美精品一区| 97香蕉久久夜色精品国产| 国内精品一区二区三区四区| 久热99视频在线观看| 亚洲欧美日韩一区二区三区在线| 久久精品国产96久久久香蕉| 亚洲成av人片在线观看香蕉| 亚洲天堂网在线观看| 欧美激情女人20p| 91社区国产高清| 国产成人精品一区| 欧美激情在线一区| 亚洲老头同性xxxxx| 国产成人一区二| 欧美亚洲日本黄色| 国产精品久久一区主播| 成人免费视频网址| 亚洲精选一区二区| 国产精品福利无圣光在线一区| 日韩高清不卡av| 欧美极品在线视频| 97视频在线观看视频免费视频| 日韩精品中文字幕在线观看| 日韩久久免费电影| 色婷婷综合久久久久中文字幕1| 国产精品免费观看在线| 日本免费一区二区三区视频观看| 黄色91在线观看| 91探花福利精品国产自产在线| 国产精品v片在线观看不卡| 91av在线国产| 国产精品中文字幕在线观看| 国产精品视频最多的网站| 午夜精品久久久久久99热| 日韩在线视频网| 亚洲美女av网站| 亚洲成人精品视频| 亚洲精品狠狠操| 久久亚洲精品视频| 亚洲无线码在线一区观看| 精品国产91乱高清在线观看| 亚洲自拍偷拍视频| 在线观看久久久久久| 欲色天天网综合久久| 久久精品视频亚洲| 日产精品99久久久久久| 亚洲精品国产精品自产a区红杏吧| 成人信息集中地欧美| 欧美小视频在线| 亚洲理论电影网| 国产精品亚洲аv天堂网| 欧美在线性爱视频| 成人激情视频在线播放| 91免费国产视频| 伦伦影院午夜日韩欧美限制| 欧美精品在线播放| 性欧美激情精品| 成人有码在线播放| 欧美网站在线观看| 欧美亚洲日本网站| 一本色道久久综合狠狠躁篇的优点| 日韩欧美在线字幕| 在线电影中文日韩| 欧美大全免费观看电视剧大泉洋| 日本一区二三区好的精华液| 亚洲女人天堂av| 精品欧美一区二区三区| 日韩精品免费电影| 精品高清一区二区三区| 91精品美女在线| 亚洲电影免费观看| 狠狠久久亚洲欧美专区| 国产精品视频自在线|