不同的機(jī)器常有ssh的需求,可惜客戶端實(shí)在太難找,用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' #藍(lán) ,配置終端輸出的顏色
RES='33[0m'
def SSH_Pkey(Host,UserName,Pkey,Port=22):
#基于用戶名密鑰連接并執(zhí)行命令
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)
# 執(zhí)行命令
print ("%s成功登錄到服務(wù)器%s,請輸入操作命令!%s"%(RED_COLOR,Host,RES) )
while True:
CMD=input('%s請輸入輸入操作命令:%s'%(BLUE_COLOR,RES))
if CMD=='exit':
print ("%s執(zhí)行%s命令退出!%s" %(RED_COLOR,CMD,RES))
# 關(guān)閉連接
SSH.close()
break
else:
stdin, stdout, stderr = SSH.exec_command(CMD)
print ("%s執(zhí)行命令%s返回結(jié)果:%s"%(RED_COLOR,CMD,RES))
for i in stdout.read().splitlines():
print (i.decode('utf-8'))
except :
print ("%sSSH遠(yuǎn)程登錄失敗,退出程序!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)
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
SSH
+關(guān)注
關(guān)注
0文章
196瀏覽量
16891
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
極簡教程:快速在樹莓派上運(yùn)行OpenVPN客戶端!
這兩樣?xùn)|西后,你需要:1.準(zhǔn)備服務(wù)器2.配置客戶端3.測試連接準(zhǔn)備服務(wù)器:假設(shè)你已經(jīng)有了OpenVPN服務(wù)器,你需要:提供客戶端配置為樹莓派設(shè)置靜態(tài)IP地址1.提

Modbus TCP連接多個(gè)客戶端解決方法-深圳市振鑫通信科技
ZP-MBS008多主站模塊是實(shí)現(xiàn)Modbus-TCP連接多個(gè)客戶端或者服務(wù)器通訊設(shè)備

MKW45B41Z客戶端無法從服務(wù)器獲取服務(wù)是為什么?
。MKW45B41Z (自定義板) 充當(dāng)中央設(shè)備客戶端角色。MKW45 客戶端掃描外圍設(shè)備(NRF 連接)設(shè)備并連接到外圍設(shè)備(NRF 連接
發(fā)表于 03-28 07:40
如何構(gòu)建MCP客戶端
Anthropic開源了一套MCP協(xié)議,它為連接AI系統(tǒng)與數(shù)據(jù)源提供了一個(gè)通用的、開放的標(biāo)準(zhǔn),用單一協(xié)議取代了碎片化的集成方式。本文教你從零打造一個(gè)MCP客戶端。

邁威通信工業(yè)無線客戶端:智能制造的高效連接新解法
隨著智能制造的興起,企業(yè)越來越依賴自動化和數(shù)字化技術(shù)來提高生產(chǎn)效率和靈活性。工業(yè)無線客戶端作為連接各個(gè)設(shè)備和系統(tǒng)的橋梁,其重要性日益凸顯。通過工業(yè)無線客戶端,可以實(shí)現(xiàn)設(shè)備間的實(shí)時(shí)數(shù)據(jù)交換和遠(yuǎn)程監(jiān)控,從而進(jìn)一步提升生產(chǎn)過程的智能化

socket 客戶端與服務(wù)器的實(shí)現(xiàn)
。 2. 創(chuàng)建服務(wù)器 服務(wù)器將監(jiān)聽一個(gè)端口,等待客戶端的連接請求,并處理這些請求。 import socket def start_server ( host, port ): # 創(chuàng)建socket對象
VPN如何配置Win7 PPTP(L2TP)客戶端?
VPN—如何配置Win7 PPTP(L2TP)客戶端?
1)、點(diǎn)擊任務(wù)欄“開始”→“控制面板”→“網(wǎng)絡(luò)和Internet”→ “網(wǎng)絡(luò)和共享中心”,點(diǎn)擊更改網(wǎng)絡(luò)設(shè)置中的“設(shè)置新的連接或網(wǎng)絡(luò)”圖標(biāo)。
2
發(fā)表于 07-26 08:02
AT模式建立TCP客戶端連接一直不成功是怎么回事?
=\"TCP\",\"192.168.0.111\",8080
ERROR
CLOSED
網(wǎng)絡(luò)調(diào)試助手軟件建立 TCP 服務(wù)端 端口號:8080
如果用8266建立服務(wù)端,網(wǎng)絡(luò)調(diào)試助手建立客戶端,則可以正常
發(fā)表于 07-18 06:42
esp_iot_sdk_v0.9.6_b1客戶端斷開連接導(dǎo)致WDT重置怎么解決?
客戶端斷開連接,服務(wù)器一定不會掛起。實(shí)際上,由于客戶端啟動了連接,因此客戶端理所當(dāng)然地應(yīng)該能夠斷開連接
發(fā)表于 07-18 06:33
如果ESP上的TCP客戶端與服務(wù)器斷開連接,如何啟用自動重連?
ESP - TCP 客戶端
嵌入式 Linux 服務(wù)器 - TCP 服務(wù)器
如果ESP上的TCP客戶端與服務(wù)器斷開連接,如何啟用自動重連?
發(fā)表于 07-17 06:25
如何在TCP客戶端模式下進(jìn)行多個(gè)連接呢?
我正在帶有ESP-07S模塊(ESP8266集成)的kinetis MCU上編寫FTP客戶端。
Wifi 連接正常工作,我可以在端口 21 上與 FileZilla 服務(wù)器連接(并通信
發(fā)表于 07-15 08:23
如何獲取連接的TCP客戶端的ESPCONN指針?
我?guī)缀蹰喿x了 SDK API 指南版本 1.0.1 的所有文檔
并開始了解如何添加用戶 AT 命令。
這真的很簡單,只需撥打at_cmd_array_register。
BUT!
如何獲取連接的 TCP 客戶端的 ESPCONN 指針?
發(fā)表于 07-12 14:54
如何同時(shí)在ESP8266上運(yùn)行TCP客戶端和TCP服務(wù)?
我們是 esp8266 的長期用戶,并在該芯片上運(yùn)行數(shù)千臺家庭自動化類別的現(xiàn)場設(shè)備。然而,一個(gè)小小的限制阻礙了我們開發(fā)一些更有趣和創(chuàng)新的產(chǎn)品。
要求:我們需要同時(shí)運(yùn)行 TCP 客戶端(連接
發(fā)表于 07-08 08:26
評論