ich habe hier ein kleinen Switch von dem Netzwerkhersteller Microsense.
Eigentlich ganz cool das Teil, aber....
Ich würde gerne Ports per SSH einschalten/ausschalten.
Leider haben die Teile nicht wie gewohnt ein richtige Shell, sondern wollen über Pfeiltasten bedient werden.
Ich kann aber auch den entsprechenden Befehl einfügen und mit Return absenden wenn ich per SSH auf das Gerät gehe. Das funktioniert dann auch.
Wenn ich versuche, das ganze mit Paramiko zu machen, sehe ich zwar einen erfolgreichen Login auf dem Gerät, aber der Befehl wird nicht richtig abgesetzt.
Ich glaube, ich lande nur kurz oder gar nicht in der Shell. Im Internet hab ich bisher noch nichts vergleichbares gefunden. Der Hersteller scheint auch nicht so bekannt zu sein.
Meine Hoffnung ist das hier vlt jemand ein ähnlichen Fall hat oder mir erklären kann wie ich sonst ohne Paramiko eine Verbindung aufbauen kann.
Meine Versuche sahen bisher so aus:
Code: Alles auswählen
#!/usr/bin/env python
import paramiko
import time
from getpass import getpass
microsense_device = {
"host": "192.168.10.10",
"username": "admin",
"port": 22,
"password": getpass()
}
MAX_BUFFER=65535
def recv(channel):
while not channel.recv_ready():
time.sleep(1)
output = channel.recv(MAX_BUFFER)
return output.decode().strip()
command = "Device.Port.config[2/3].port_operation = Enabled\n"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(microsense_device["host"], microsense_device["port"], microsense_device["username"], microsense_device["password"])
channel = client.invoke_shell()
#recv the ouput initially sent by the shell
output = recv(channel)
print(output)
channel.send(command)
time.sleep(1)
#recv the output
output = recv(channel)
print(output)
time.sleep(1)
client.close()
Code: Alles auswählen
Command Line Interface (CLI) / MICROSENS G6 S
System name: ms-192-168-10-10
You are logged in as admin (id:38) from IP
Login status index: 32
Your general access rights are: Read/Write
Type ? for help on operation and for parameter
ms-192-168-10-10>>
Device.Port.config[2/3].port_operation = Enable
PS D:\Users\Me\Documents\python>