不同的機器常有ssh的需求,可惜客戶端實在太難找,用paramiko可以快速完成連接,比如,
# coding : utf-8
# @Goal : use paramiko to ssh
# prepare : see below
# input : none
# output : command output
# @Author : chi
# @Time : 2022.12.12
# @Prepare :
# 1 Scriptspip3 install paramiko
# @License : MIT
# -*- coding: utf-8 -*-
import paramiko
RED_COLOR='33[1;31;48m' #紅 ,配置終端輸出的顏色
BLUE_COLOR='33[1;34;48m' #藍 ,配置終端輸出的顏色
RES='33[0m'
def SSH_Pkey(Host,UserName,Pkey,Port=22):
#基于用戶名密鑰連接并執行命令
try:
SSH = paramiko.SSHClient()
# use key_file
# private_key = paramiko.RSAKey.from_private_key_file(Pkey)
# SSH.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# SSH.connect(hostname=Host, port=Port, username=UserName,key_filename=Pkey)
# or use key_word
know_host = paramiko.AutoAddPolicy()
SSH.set_missing_host_key_policy(know_host)
SSH.connect(hostname=Host, port=Port, username=UserName,password=Pkey)
# 執行命令
print ("%s成功登錄到服務器%s,請輸入操作命令!%s"%(RED_COLOR,Host,RES) )
while True:
CMD=input('%s請輸入輸入操作命令:%s'%(BLUE_COLOR,RES))
if CMD=='exit':
print ("%s執行%s命令退出!%s" %(RED_COLOR,CMD,RES))
# 關閉連接
SSH.close()
break
else:
stdin, stdout, stderr = SSH.exec_command(CMD)
print ("%s執行命令%s返回結果:%s"%(RED_COLOR,CMD,RES))
for i in stdout.read().splitlines():
print (i.decode('utf-8'))
except :
print ("%sSSH遠程登錄失敗,退出程序!n" %(RED_COLOR,RES ))
if __name__ == '__main__':
Host='192.1.1.1'
UserName='root'
SSH_Key=r'root' # or file 'D:\key'
Port = 22
SSH_Pkey(Host=Host,UserName=UserName,Pkey=SSH_Key,Port=Port)
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
SSH
+關注
關注
0文章
189瀏覽量
16405
發布評論請先 登錄
相關推薦
邁威通信工業無線客戶端:智能制造的高效連接新解法
隨著智能制造的興起,企業越來越依賴自動化和數字化技術來提高生產效率和靈活性。工業無線客戶端作為連接各個設備和系統的橋梁,其重要性日益凸顯。通過工業無線客戶端,可以實現設備間的實時數據交換和遠程監控,從而進一步提升生產過程的智能化
![邁威通信工業無線<b class='flag-5'>客戶端</b>:智能制造的高效<b class='flag-5'>連接</b>新解法](https://file.elecfans.com/web2/M00/60/F2/poYBAGL7Q-aATEgLAAAOZyR0ldk551.png)
AT模式建立TCP客戶端連接一直不成功是怎么回事?
=\"TCP\",\"192.168.0.111\",8080
ERROR
CLOSED
網絡調試助手軟件建立 TCP 服務端 端口號:8080
如果用8266建立服務端,網絡調試助手建立客戶端,則可以正常
發表于 07-18 06:42
esp_iot_sdk_v0.9.6_b1客戶端斷開連接導致WDT重置怎么解決?
客戶端斷開連接,服務器一定不會掛起。實際上,由于客戶端啟動了連接,因此客戶端理所當然地應該能夠斷開連接
發表于 07-18 06:33
如果ESP上的TCP客戶端與服務器斷開連接,如何啟用自動重連?
ESP - TCP 客戶端
嵌入式 Linux 服務器 - TCP 服務器
如果ESP上的TCP客戶端與服務器斷開連接,如何啟用自動重連?
發表于 07-17 06:25
如何獲取連接的TCP客戶端的ESPCONN指針?
我幾乎閱讀了 SDK API 指南版本 1.0.1 的所有文檔
并開始了解如何添加用戶 AT 命令。
這真的很簡單,只需撥打at_cmd_array_register。
BUT!
如何獲取連接的 TCP 客戶端的 ESPCONN 指針?
發表于 07-12 14:54
如何同時在ESP8266上運行TCP客戶端和TCP服務?
我們是 esp8266 的長期用戶,并在該芯片上運行數千臺家庭自動化類別的現場設備。然而,一個小小的限制阻礙了我們開發一些更有趣和創新的產品。
要求:我們需要同時運行 TCP 客戶端(連接
發表于 07-08 08:26
嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-scp出現報錯no matching host key type found. Their offer: ssh-rsa
這個報錯通常出現在使用SSH連接時,SSH客戶端與服務器之間無法達成共識,無法找到匹配的主機密鑰類型,可能是因為SSH
發表于 06-29 09:33
飛凌嵌入式ElfBoard ELF 1板卡-scp出現報錯no matching host key type found. Their offer: ssh-rsa
這個報錯通常出現在使用SSH連接時,SSH客戶端與服務器之間無法達成共識,無法找到匹配的主機密鑰類型,可能是因為SSH
發表于 06-29 09:30
求助,關于ESP32C3 TCP客戶端連接斷線問題求解
ESP32C3開啟AP模式做TCP服務器,手機做客戶端連接服務器;超過默認最大連接數(5)以后,即使有部分客戶端斷開了,也無法再發起
發表于 06-27 07:54
請問esp32能支持多個客戶端同時連接嗎?
根據我現在的測試結果,esp32作為ble server時同時支持一個客戶端連接,前一個客戶端必須斷開藍牙連接,后一個才能連接。實際esp3
發表于 06-11 06:25
服務端測試和客戶端測試區別在哪
服務端測試和客戶端測試是軟件開發過程中的兩個重要環節,它們分別針對服務器端和客戶端的軟件進行測試。本文將詳細介紹服務端測試和
電腦TCP客戶端連接開發板時LWIP出現錯誤怎么解決?
開發板使用的STM32F407,UCOSII+LWIP,開發板作TCP服務器時,用電腦作TCP客戶端連接,連接數在第四個時LWIP出現錯誤:memp_malloc: out of memory in pool NETCONN。請
發表于 05-09 06:38
評論