不同的机器常有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文章
184浏览量
16282
发布评论请先 登录
相关推荐
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
如何通过SSH连接到Linux计算机?
的基本概念与工作原理 SSH是一种用于在不可信的网络中建立安全连接的网络协议。它能够通过加密和身份验证来保护远程访问和数据传输的安全。 SSH使用了一对称密码体制,即客户端和服务器使用
分享一款别样的ssh客户端-PortX
目前支持ssh的客户端有很多,比如putty、crt、xshell等,今天分享一款别样的ssh客户端-PortX,通过简单但全面的UI,PortX为您提供了纯粹的终端模拟体验。
评论