不同的机器常有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文章
177浏览量
16081
发布评论请先 登录
相关推荐
stm32 +lwip1.3.1客户端异常导致网络ping不通怎么解决?
stm32上运行lwip作为服务器,如果客户端异常了,发现在客户端再也ping不通
网络如果异常,交换机挂了,重启后,客户端怎么都ping不通stm32
有没有遇到同样的问题?
不是
发表于 04-22 07:30
分享一款别样的ssh客户端-PortX
目前支持ssh的客户端有很多,比如putty、crt、xshell等,今天分享一款别样的ssh客户端-PortX,通过简单但全面的UI,PortX为您提供了纯粹的终端模拟体验。
在esp8266中内置客户端WEB,请问有固件版本的要求吗?
各位大神好!我想在8266中内置客户端WEB,请问有固件版本的要求吗?WEB内容是不是可以自己定制?有没有相关方面的资料吗?我在上看到《esp8266从零快速开发教程》,但是链接已经失效了,有
发表于 11-08 08:07
AT32基于FreeRTOS的AWS MQTT客户端
AT32基于FreeRTOS的AWS MQTT客户端建立一个MQTT客户端与 AWS IoT Core进行通讯,用户可以基于这个范例去开发属于自己的应用。
发表于 10-26 06:03
【触觉智能 Purple Pi OH 开发板体验】无网络状态连接ssh解决办法
SSH代理服务器,可以访问内部网络资源,而无需直接将服务暴露在外部网络。这对于保护内部网络安全非常有用。
移动设备连接: 移动设备上也有SSH客户端应用,使用户能够通过手机或平板电脑
发表于 08-20 12:38
如何检查连接到我的esp的客户端数量?
我想像我的 esp8266 和 realy 的简单应用程序。我想打开门(通过继电器),当我输入 esp 地址时。
那么如何检查连接到我的 esp 的客户端数量?
发表于 06-09 08:20
ESP8266为什么不能根据来自客户端的连接触发新的html网页?
我正在尝试在 ESP8266 上创建客户端程序以响应多个 html 网页;当客户选择按钮时。基本上不同的页面用于不同的 LED 控件集。我正在使用 WiFiClient 客户端创建与服务器的连
发表于 06-06 10:37
服务器和客户端之间的TCP通信丢失怎么处理?
嗨,
当 WiFi 信号变低时,比如超过 -80dBm,我面临服务器和客户端之间的 TCP 通信丢失。一旦客户端断开连接,它就无法重新连接并正常进行通信。
如何让
发表于 05-16 08:19
ESP8266是否支持SSH客户端连接?
我想执行连接到私有 GitHub 存储库的高度安全更新。但是我需要为此登录,GitHub 通过 SSH 提供连接,但我找不到关于此的任何文档或示例。
这是支持吗?
我该怎么做?
发表于 05-16 07:27
如何在rtos mqtt示例中获取客户端句柄?
中,我调用
代码:全选esp_mqtt_client_publish()
但我没有客户端句柄,它只在回调中设置。我尝试使用客户端句柄的全局副本,但它没有用,除了是个坏主意:
代码:全
发表于 05-15 08:13
当WiFi信号变低时,服务器和客户端之间的TCP通信丢失,如何使客户端重新连接?
大家好,
当 WiFi 信号变低时,服务器和客户端之间的 TCP 通信丢失,比如超过 -80dBm。一旦客户端断开连接,它就无法重新连接并正常进行通信。如何让
发表于 05-15 07:31
esp8266和arduino连接并创建了一个网络服务器,为什么网络浏览器中输入ip时客户端没有按回车就连接了?
时,一个客户端没有按回车就连接了?当我按回车时另一个客户端连接了?我认为这不正常。是吗?
2.我还注意到很多次
发表于 05-12 06:26
评论