Konsole: Unterschied zwischen den Versionen

Aus Gude Systems GmbH
Zur Navigation springen Zur Suche springen
Zeile 229: Zeile 229:
 
='''Generierung mit PuTTYgen'''=
 
='''Generierung mit PuTTYgen'''=
 
<br /> [[Datei:Key.png]]
 
<br /> [[Datei:Key.png]]
 +
<br />
 
<br />Generierte Schlüssel können z.B. direkt aus PuTTYgen kopiert,
 
<br />Generierte Schlüssel können z.B. direkt aus PuTTYgen kopiert,
 +
<br />
 
<br /> [[Datei:Upload.png]]
 
<br /> [[Datei:Upload.png]]
 
<br />und direkt in das Configuration - Console Eingabefeld eingefügt werden. Public Keys werden im SSH2 oder OpenSSH Format angenommen.
 
<br />und direkt in das Configuration - Console Eingabefeld eingefügt werden. Public Keys werden im SSH2 oder OpenSSH Format angenommen.

Version vom 26. März 2024, 12:32 Uhr

Für die Konfiguration und Steuerung des Gerätes existiert ein Befehlssatz von Kommandos mit Parametern, die über eine Konsole eingegeben werden können. Die Konsole steht über SSH oder Telnet, oder bei Geräten mit RS232 Anschluss über ein serielles Terminal zur Verfügung. Es muss nicht unbedingt Telnet genutzt werden, im Raw Mode reicht eine einfache TCP/IP Verbindung, um Befehle schicken zu können. Die Kommunikation lässt sich auch automatisiert durchführen (z.B. über Skriptsprachen). Die Konsoleneigenschaften werden über das Webinterface konfiguriert.

Login


Ein SSH / Telnet login kann mit und ohne Passwort konfiguriert werden:
Login.png

Befehlssatz


Es existieren mehrere Kommando-Ebenen. Folgende Kommandos sind von jeder Ebene benutzbar:

back Eine Befehlsebene zurückgehen
help Die Befehle der aktuellen Ebene
help all Alle Befehle
logout Ausloggen (nur wenn Login erforderlich)
quit Konsole beenden


Der Befehl "help" gibt alle Kommandos der aktuellen Ebene zurück. Wird "help" von der obersten Ebene aufgerufen, wird z.B. auch die Zeile "http [subtopics]" angezeigt.
Dies bedeutet, dass es für "http" eine weitere Ebene gibt. Mit dem Kommando "http help" lassen sich nun alle Befehle unterhalb von "http" anzeigen. Alternativ kann man mit dem Aufruf "http" diese Ebene auswählen, und "help" zeigt alle Befehle der gewählten Ebene. Das Kommando "back" selektiert wieder die oberste Ebene. Es ist möglich "help" an einer beliebigen Position zu benutzen: "http passwd help" stellt z.B. alle Kommandos dar, die den Präfix "http passwd" besitzen. Eine komplette Liste aller möglichen Geräte-Befehle finden Sie im Kapitel "Console Cmd".

Parameter


Werden für die Kommandos Parameter erwartet, lässt sich der Parameter numerisch oder als Konstante übergeben. Bekommt man als Hilfe z.B. die folgende Zeile:
http server set {http_both=0|https_only=1|http_only=2}

so sind die folgenden Anweisungspaare jeweils äquivalent:

http server set https_only
http server set 1

bzw.

http server set https_both
http server set 0

Numerische Parameter können mit verschiedenen Basen eingegeben werden. Hier ein
Beispiel für den dezimalen Wert 11:

Basis Eingabe
dezimal (10) 11
hexadezimal (16) 0xb
oktal (8) 013
binär (2) 0b1011

Bitfeld-Parameter


Manche Parameter können mehrere Werte gleichzeitig annehmen. Im folgenden Beispiel können alle Werte zwischen 0 und 5 gesetzt werden. In der Hilfe ist dies daran erkennbar, dass die Werte nicht durch das "|" Zeichen, sondern durch Kommata getrennt sind.

"{EVT_SYSLOG=0,EVT_SNMP=1,EVT_EMAIL=2,EVT_SMS=3,EVT_GSMEMAIL=4,EVT_BEEPER=5}"

Um in einem Befehl EVT_SYSLOG und EVT_EMAIL zu setzen, kann man z.B. folgende Syntax benutzen:

>extsensor 1 2 0 events type set "EVT_SYSLOG,EVT_EMAIL"
OK.

oder numerisch

>extsensor 1 2 0 events type set "0,2"
OK.

Zusätzlich kann man mit "ALLSET" alle Werte setzen, oder mit der Syntax "#7f1a" eine beliebiges Bitmuster als Hexzahl kodieren.

Rückgabewerte


Ist ein Befehl unbekannt oder ein Parameter fehlerhaft, so erfolgt am Anfang der Zeile die Ausgabe "ERR." mit einer nachfolgenden Fehlerbeschreibung. Erfolgreiche Anweisungen ohne speziellen Rückgabewert werden mit "OK." quittiert. Alle anderen Rückgabewerte werden innerhalb einer einzelnen Zeile ausgegeben. Es gibt davon zwei
Ausnahmen:

  1. Manche Konfigurationsänderungen, die TCP/IP und UDP betreffen, werden erst nach einem Neustart übernommen. Diese Parameter werden zweizeilig ausgegeben. In der ersten Zeile ist der aktuelle Wert, in der zweiten Zeile der Wert nach dem Neustart. In der "Cmd Overview" Tabelle ist dies mit "Note 2" gekennzeichnet.
  2. Einige Konfigurationen (wie z.B. die vergebenen IPv6-Adressen) haben mehrere Werte, die sich dynamisch ändern können. Dies ist mit "Note 3" in der "Cmd Overview" Tabelle markiert.

Numerische Rückgaben


Bei Parametern, die Konstanten unterstützen, werden diese Konstanten auch als Rückgabewerte ausgegeben. Um besser mit Skriptsprachen arbeiten zu können, kann es einfacher sein, nur mit numerischen Rückgaben zu arbeiten. Mit dem Befehl "vt100 numeric set ON" werden nur noch numerische Werte angezeigt.

Kommentare


Möchten Sie mit einem Tool eine ganze Datei von Kommandos über Telnet schicken, so ist es hilfreich, dort Kommentare verfassen zu können. Ab dem Kommentarzeichen "#" wird deshalb der restliche Inhalt einer Zeile ignoriert.

Telnet


Ist die Konfiguration nicht im "Raw Mode", so wird mit Hilfe der IAC Befehle versucht, die Telnet Konfiguration zwischen Client und Server auszutauschen. Gelingt dies nicht, so sind die Editierfunktionen nicht aktiv, und die "Activate echo" Option bestimmt, ob die zum Telnet Server gesendeten Zeichen zurückgeschickt werden. Normalerweise beginnt der Client die IAC Negotiation. Ist dies beim Client nicht der Fall, sollte in der Gerätekonfiguration "Active negotiation" eingeschaltet werden.

Raw Mode


Möchte man die Konsole nur automatisiert nutzen, so kann es von Vorteil sein, die Konfiguration "Raw mode" auf "yes" und "Activate echo" auf "no" zu stellen. Es gibt dann keine störende Interaktion mit den Editor-Funktionen und es müssen die gesendeten Zeichen nicht gefiltert werden, um die Rückgabewerte zu verarbeiten.
Wichtig zeichen.png Ist in der Konsole "Raw mode" aktiviert aber nicht im benutzten Telnet Client, dann können die am Anfang übermittelten IAC Befehle als störende Zeichen in Kommandozeile auftauchen (teilweise unsichtbar).

Editierfunktionen


Die folgenden Editierfunktionen sind verfügbar, wenn das Terminal VT100 unterstützt, und der RAW-Modus nicht eingeschaltet ist. Eingegebene Zeichen werden an der Cursorposition eingefügt.

links, rechts bewegt Cursor nach links oder rechts
Pos1, Ende setzt den Cursor auf Anfang oder Ende der Zeile
Entf löscht Zeichen unter dem Cursor
Rück löscht Zeichen links vom Cursor
rauf, runter zeigt ältere Eingabezeilen (History)
Tab, Strg-Tab vervollständigt das Wort am Cursor
Strg-C löscht die Zeile


Wichtig zeichen.png Dieses Kapitel ist allgemein für alle Gude Geräte gehalten. Je nach Gerätetyp sind Ports oder bestimmte Sensoren nicht verfügbar.

Sensor Beispiele

a) externe Sensoren
>extsensor all show
E=1,L="7106",0="21.3°C",1="35.1%",3="1013hPa",4="5.2°C",5="16.0°C"
E=2,L="7102",0="21.2°C",1="35.4%",4="5.3°C",5="15.9°C"

Der Befehl listet jeweils einen angeschlossenen externen Sensor pro Zeile, und nach dem Labelnamen kommen die einzelnen Messwerte durch Kommata getrennt. Die Ziffer vor dem Gleichheitszeichen entspricht dem Feld Index aus der Externer Sensor Tabelle.

>extsensor 1 0 value show
Zeigt Temperatur des Sensors an Port 1

b) Line-Sensoren
Wichtig zeichen.png Für Geräte mit 230V Eingangsmessung (Metered PDU).
>linesensor all "0,1,2,3,12" show
L=1,L="Power Port",0="13000Wh",1="0W",2="225V",3="0A",12="998218s"
L=2,L="Power Port",0="13000Wh",1="0W",2="223V",3="0A",12="996199s"

Dieses Kommando gibt alle Line-Sensorwerte in jeweils einer Zeile aus. Als Parameter wird eine Liste aller Felder (entsprechend der Energie Sensor Tabelle) übergeben. In diesem Beispiel sind dies die Felder Absolute Active Energy (0), Power Active (1), Voltage (2), Current (3) und Reset Time (12).

>linesensor 1 "0,1,2,3,12" show
>linesensor 1 1 show

Diese Varianten geben die Sensorwerte der Feldliste oder eines Sensors an Line 1.
Wichtig zeichen.png Bei Geräten mit Overvoltage Protection wird bei dem "linesensor all" Kommando der Zustand der Protection mit ausgegeben ("OVP=x"). Eine "1" bedeutet Ok, eine "0" ein Ausfall der Protection.

c) Port-Sensoren für Geräte mit 230V Ausgangsmessung (Outlet-Metered PDUs)
Wichtig zeichen.png Für Geräte mit 230V Ausgangsmessung (Outlet-Metered PDU).
>portsensor all "0,1,2,3,12" show
P=1,L="Power Port",0="13000Wh",1="0W",2="225V",3="0A",12="998218s"
P=2,L="Power Port",0="13000Wh",1="0W",2="225V",3="0A",12="996199s"
...
P=12,L="Power Port",0="13000Wh",1="0W",2="225V",3="0A",12="998218s"


Dieses Kommando gibt alle Port-Sensorwerte in jeweils einer Zeile aus. Als Parameter wird eine Liste aller Felder (entsprechend der Energie Sensor Tabelle) übergeben. In diesem Beispiel sind dies die Felder Absolute Active Energy (0), Power Active (1), Voltage (2), Current (3) und Reset Time (12).

>portsensor 2 "0,1,2,3,12" show
>portsensor 2 1 show

Diese Varianten geben die Sensorwerte der Feldliste oder eines Sensors an Outlet Port 2.
Wichtig zeichen.png Die folgenden Beispiele beziehen sich auf Gude Geräte die schaltbare Ports haben.

d) Port-Relais anzeigen
>port all state 1 show
P1=ON,P2=OFF,P3=ON,P4=OFF,P5=OFF,P6=OFF,P7=OFF,P8=ON

Der Befehl "port all state {MODE0=0|MODE1=1|MODE2=2} show" gibt den Schaltzustand aller Relais in 3 möglichen Formaten zurück.

e) Port-Relais schalten
>port all state set "1,2,12" 1
OK.

Die Befehlssyntax "port all state set "{port_list}" {OFF=0|ON=1}" setzt eine Liste von Ports auf den Zustand ON=1 oder OFF=0.

SSH:


Das Gerät unterstützt SSH-2 Verbindungen entweder mit Public Key Authentifizierung oder Benutzernamen und Passwort. Der "login" muss für SSH aktiviert sein. Benutzer und Passwörter können lokal gespeichert sein, oder über einen Radius Server abgefragt werden. Möchte man SSH in einem Terminal verwenden, sollte Activate echo eingeschaltet sein.

Public Keys


Es werden folgende Public Keys akzeptiert:

Schlüssel-Typ Länge
RSA 2048, 4096
ECDSA 256, 384

Generierung mit PuTTYgen


Key.png

Generierte Schlüssel können z.B. direkt aus PuTTYgen kopiert,

Upload.png
und direkt in das Configuration - Console Eingabefeld eingefügt werden. Public Keys werden im SSH2 oder OpenSSH Format angenommen.

Generierung mit ssh-keygen


Das Tool ssh-keygen wird meist mit Linux und Windows ausgeliefert um SSH Keys zu erzeugen. Hier ein Beispiel um einen ECDSA 384 Schlüssel zu erzeugen.

ssh-keygen -t ecdsa -b 384 -f ssh.key

In der Datei ssh.pub ist dann der private Key, der Inhalt von ssh.key.pub wird in das Feld "Upload SSH public key:" eingefügt.