Fernsteuerung Unifi Switch mittels Script (SSH -> Telnet)

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Ferro
Beiträge: 48
Registriert: 13.06.2016, 20:37
System: CCU
Hat sich bedankt: 12 Mal

Fernsteuerung Unifi Switch mittels Script (SSH -> Telnet)

Beitrag von Ferro » 19.07.2018, 09:18

Liebes Forum,

leider komme ich nach Tagen der Recherche einfach nicht weiter und würde mich daher über eure Hilfe sehr freuen. Ich sehe vermutlich nur den Wald vor lauter Bäumen nicht.

Ziel:
ich möchte gerne einen Unifi Switch aus meiner Mediola NEO Visualisierung heraus steuern.

Vorgehensweise (auf der CCU)
  • Verbindung mittels SSH auf den Unifi Switch
  • dann dort eine Telnet Verbindung auf den localhost (Switch)
  • entsprechende Komandos eingeben
Wie ich es bisher mache:
In einer batch Datei (.cmd) auf einem Windows PC starte ich die SSH Session mittels plink.exe (putty) und Telnet mit übergebe eins Text file welches die auszuführenden Befehle enthält. Die entsprechenden Aktionen lassen sich also bequem mittels Doppelklick auf die Batch-Datei ausführen.

Batch-Datei:

Code: Alles auswählen

plink username@ipadresse -pw [Passwort] telnet localhost < Kommandos.txt
Die kOMMANDOS (.txt Datei):

Code: Alles auswählen

en
conf
interface 0/5
shutdown
exit
Nun das Problem:
Ich dachte mir, dass ich einfach, analog zu Windows, eine Batch-Datei auf der CCU erstelle und diese dann mittels system.Exec(SSH ...) ausführe. Leider scheitert es schon daran, dass ich bei SSH leider kein Passwort als Parameter übergeben kann und ich auch keinen Schimmer habe wie ich die Linux Version von plink (putty) auf der ccu installieren kann, was natürlich die bevorzugte Lösung wäre da ich mich dann die selben Batch Files auf beiden Plattformen verwenden könnte. Die Problematik mit der Speicherung des Passworts in Klartext ist mir bewust aber sollte bitte jetzt hier keine Rolle spielen.

Ich hoffe ich habe das Problem verständlich beschrieben. An dieser Stelle schon mal vielen Dank für eure Denkanstösse.
"Theorien wie "Stringtheorien und Paralleluniversen" sind mindestens genauso gewagt wie die Vorstellung, dass hier pausenlos irgendwelche Außerirdischen landen." [Professor Dr. Harald Lesch]

Sven_A
Beiträge: 4155
Registriert: 26.01.2016, 08:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Renningen
Hat sich bedankt: 348 Mal
Danksagung erhalten: 284 Mal

Re: Fernsteuerung Unifi Switch mittels Script (SSH -> Telnet)

Beitrag von Sven_A » 19.07.2018, 09:45

Du wirst wohl SSH Keys zwischen der CCU und dem Switch austauschen müssen.
Hier hab ich mal ausführlich beschrieben wie das geht. Bei mir war's zwar kein Switch, sondern mein QNAP NAS, sollte aber auf dem Switch so ähnlich gehen.

Gruß,
Sven

Ferro
Beiträge: 48
Registriert: 13.06.2016, 20:37
System: CCU
Hat sich bedankt: 12 Mal

Re: Fernsteuerung Unifi Switch mittels Script (SSH -> Telnet)

Beitrag von Ferro » 19.07.2018, 11:18

Hallo Sven,

vielen Dank für deinen Hinweis.

Diese Variante habe ich auch schon in Betracht gezogen aber dann gleich wieder verworfen da ich Manipulationen am Zielgerät durchführen müsste. Das ist bei einem Gerät schon grenzwertig aber bei einer Umgebung mit mehreren Geräten (z.B. APs usw.) keine Option. Zudem fängt man sich damit die Problematik ein, dass beim Austausch des Gerätes das Ganze erst wieder funktioniert wenn man das Gerät wieder entsprechend manipuliert hat. Die Notwendigkeit könnte eventuell auch schon auch bei FW-Updates eintreten.

Sollte es keinen Weg geben plink auf der ccu2 zu nutzen bzw. zu installieren, werde ich wohl den Umweg über einen Raspberry gehen müssen, welcher dann die von der CCU kommenden Trigger mittels plink an die Geräte sendet.

Selbstverständlich wäre eine reine CCU Lösung der Idealfall. Auf keinen Fall jedoch sollen die Target-Devices "modifiziert" werden.

Ich verstehe einfach nicht weshalb SSH diese Möglichkeit nicht bietet??? Putty schafft es ja auch irgendwie das Passwort für eine SSH Session zu übermitteln!

Gruss Claus
"Theorien wie "Stringtheorien und Paralleluniversen" sind mindestens genauso gewagt wie die Vorstellung, dass hier pausenlos irgendwelche Außerirdischen landen." [Professor Dr. Harald Lesch]

Ferro
Beiträge: 48
Registriert: 13.06.2016, 20:37
System: CCU
Hat sich bedankt: 12 Mal

Re: Fernsteuerung Unifi Switch mittels Script (SSH -> Telnet)

Beitrag von Ferro » 19.07.2018, 11:47

Hallo Sven,

Müsste natürlich meine CCU und den Raspberry für SSH verheiraten aber leider funktioniert der Link auf das ssh-keydir-addon nicht mehr da HomeMatic Inside wohl umgebaut wurde. Unter den Addons ist es auf der neuen Seite auch nicht aufgeführt. Könntest du das Addon hier bereitstellen bzw. weisst du wo man es noch bekommt? Google war da keine grosse Hilfe.

Danke und Gruss
Claus
"Theorien wie "Stringtheorien und Paralleluniversen" sind mindestens genauso gewagt wie die Vorstellung, dass hier pausenlos irgendwelche Außerirdischen landen." [Professor Dr. Harald Lesch]

Sven_A
Beiträge: 4155
Registriert: 26.01.2016, 08:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Renningen
Hat sich bedankt: 348 Mal
Danksagung erhalten: 284 Mal

Re: Fernsteuerung Unifi Switch mittels Script (SSH -> Telnet)

Beitrag von Sven_A » 19.07.2018, 11:52

Weil auf der CCU eben alles etwas abgespeckt ist.

"Manipuliert" versteh ich nicht. Ich habe hier auf Arbeit 450 Switche bei denen die SSH Keys mit dem Managementserver ausgetauscht werden. Das ist im Netzwerkumfeld eine ganz normale vorgehensweise. Natürlich muss man bei einem Switchtausch die Keys neu überspielen. So what? Von den 450 Switchen, haben wir in den letzten 9 Jahren vielleicht 20 oder 30 getauscht.

Wenn du nen Rapsi dazwischen hängst musst du auch schauen das der nicht ausfällt, bzw. diese neu einrichten.

Egal, du wirst plink nicht auf die CCU bringen, und der SSH Client kann halt keine Passwörter übergeben.

Sven_A
Beiträge: 4155
Registriert: 26.01.2016, 08:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Renningen
Hat sich bedankt: 348 Mal
Danksagung erhalten: 284 Mal

Re: Fernsteuerung Unifi Switch mittels Script (SSH -> Telnet)

Beitrag von Sven_A » 19.07.2018, 11:54

Hier noch das SSH Plugin.
Dateianhänge
ssh-keydir_1.0.tar.gz
(739 Bytes) 61-mal heruntergeladen

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Fernsteuerung Unifi Switch mittels Script (SSH -> Telnet)

Beitrag von Familienvater » 19.07.2018, 12:19

Hi,

plink in der Form gibt es nicht für CCU und Konsorten, das würde man einfach mit einem ssh und entsprechender Parameterübergabe bzw. reinpipen machen. Dazu ist es aber wie schon erwähnt notwendig, die SSH-Keys entsprechend auszutauschen.

Kannst Du vielleicht bei Deinem Switch auch was per JSON schalten, dann würde ggf. wget oder curl gehen? Es geht ja wohl nur darum, einen (POE)-Port an/auszuschalten. Wenn JSON nicht geht, evtl. ginge das direkt per Telnet, das könnte man man das evtl. von der CCU aus von der Kommandozeile mit socat hinbekommen.

Der Familienvater

Ferro
Beiträge: 48
Registriert: 13.06.2016, 20:37
System: CCU
Hat sich bedankt: 12 Mal

Re: Fernsteuerung Unifi Switch mittels Script (SSH -> Telnet)

Beitrag von Ferro » 19.07.2018, 12:26

Hallo Sven,

erst mal danke für das Addon.

Vielen Dank auf für die klare Aussage dass plink nie auf der CCU funktionieren wird. Dann kann ich diese Möglichkeit abhaken.

Managementserver??? ... mag ja in einer so grossen Umgebung Sinn ergeben. Nicht aber in meiner hier.

Bei mir geht es darum, dass das System bei einer Störung auch von jemand ohne grosse Fachkenntnisse und mit reinem lefefonischen Support wieder zum funktionieren gebracht werden kann.
  • Bei einem defekten PI: SD-Karte in den neuen und gut ist.
  • PI System zerschossen: Backup SD-Karte rein und gut ist.
  • CCU defekt: Reserve CCU starten und gut ist.
Ich hoffe ich konnte verständlich machen warum ich eine einfach zu entstörende Lösung suche.

Nochmals vielen Dank für deine Unterstützung.
Gruss Claus
"Theorien wie "Stringtheorien und Paralleluniversen" sind mindestens genauso gewagt wie die Vorstellung, dass hier pausenlos irgendwelche Außerirdischen landen." [Professor Dr. Harald Lesch]

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Fernsteuerung Unifi Switch mittels Script (SSH -> Telnet)

Beitrag von Familienvater » 19.07.2018, 12:46

Hi,

wenn Du so wenig am System fummelst, das Du IMMER eine aktuell bespielte Reserve CCU hast, dann Glückwunsch.
Ansonsten fängt es nämlich an, das jemand doch noch das Backup der letzten Nacht einspielen müsste.
Und auch Dein Unify-Switch (oder was auch immer) hast Du nicht als fertig konfigurierte Reserve im Schrank liegen, oder?

Und wenn man sich die Mühe machen würde, dann könnte man auch die Reserve-CCU per Key bereits im Vorfeld am Ziel authentifizieren, wobei ich mir nicht sicher bin, ob es wirklich notwendig wäre, weil die SSH-Keys eigentlich Bestandteil des Backups der CCU sein müssten, und damit die Reserve-CCU auch die SSH-Identität übernehmen würde.

Der Familienvater

Ferro
Beiträge: 48
Registriert: 13.06.2016, 20:37
System: CCU
Hat sich bedankt: 12 Mal

Re: Fernsteuerung Unifi Switch mittels Script (SSH -> Telnet)

Beitrag von Ferro » 19.07.2018, 16:27

Hallo Familienvater,

auch dir vielen Dank für deine Antwort.

Das System läuft seit längerem ohne Modifikationen (kaum zu glauben aber wahr). Und ja, nach jeder Änderung an der CCU mache ich ein Backup. Bei den PIs verfahre ich genauso. Klar, dass beim Defekt des Routers der neue wieder mit der gleichen IP versehen werden muss. Das ist aber telefonisch oder von einem "normalen" Anwender noch lösbar. Das ganze SSH-Keys Thema hingegen nicht. Mag ja sein, dass das SSH Thema in der Administratorenwelt so ist wie der Explorer unter Windows. In diesen Umgebungen wird man aber vermutlich seltener auf eine CCU stossen, so dass die SSH Themen wohl eher für die experimentierfreudigen Benutzer, so wie auch ich einer bin, ein Thema ist. Allerdings bin ich keine 25 mehr und daher ist für mich extrem wichtig, dass das System auch dann noch funktioniert wenn ich es mal nicht mehr betreuen kann. Unser technisches Handbuch (ja habe ich auch gemacht) ist jetzt schon umfangreich genug. Und wenn ich ehrlich bin, stosse ich auch selbst schon an meine Grenzen wenn es um SSH, Batchfiles etc. geht. Das Problem hätte ich vermutlich mit einer eigenen C# Anwendung schneller verstanden und gelöst als die ganzen Batch Files und Parameterübergabe mit console und Co.

Seht es mir daher bitte nach, dass ich keine Grundsatzdiskussion führen möchte. Eine einfache funktionale Lösung wie mit plink (Putty) unter Windows wäre schön gewesen. Warum das auf einem Heimanwendersystem wie die CCU nicht implementiert ist wird wohl seine Gründe haben, ist aber letztendlich nicht wichtig für mich. Das eine Passwortübergabe mit SSH nicht geht war die entscheidende Information. Welche Philosophie dahinter steckt ist für mich jedoch ebenso nicht relevant.

Nochmals vielenDank für eure Mühe und eure Zeit.

Gruss Claus
"Theorien wie "Stringtheorien und Paralleluniversen" sind mindestens genauso gewagt wie die Vorstellung, dass hier pausenlos irgendwelche Außerirdischen landen." [Professor Dr. Harald Lesch]

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“