dieser dann eine weiteres System steuern muss. Z.B. um es herunter zu fahren oder neu zu starten. Weitere Situationen sind ebenfalss denkbar. Dies kann alles über ssh erfolgen. Jedoch leider nicht ohne Kennwortabfrage. Dies lässt sich umgehen. Dazu muss ein Zertifikat erstellt werden welches auf das zu steuernde Remotesystem kopiert wird. Das Zertifikat wird dem gewünschten Benutzerkonte auf dem Remotesystem hinzugefügt. So kann per ssh ein Befehl auf dem Remotesystem eines dort existierenden Benutzerkontos ein Befehl ausgeführt werden. Das ganue ist sogar gar nicht so kompliziert ein zu richten und lässt sich mit wenigen Befehlen einrichten:

Zunächst sollten beide Systeme laufen und im Netzwerk verbunden sein. Bzw. eine Verbindung per ssh möglich sein. Hierzu muss ssh auf den Systemen akjtviert sein. Dies ist meistens schon der Fall. Auf  dem Raspberry lässt sich dies über den Befehl sudo raspi-config nachholen.

 

Beispielsituation

Zum einrichten des Schlüssels braucht man sich nicht einmal am Remote-System anmelden. Hier im Beispeiel existieren zwei Unterschiedliche System: lokaler Host ist ein Raspberry auf dem die Benutzerkosnsole offen ist und auf dem dem die Befehle eingegeben werden. Angemeldet ist hier der Benutzer Pi.
Der Remot-Host ist ein Debian 8 System mit der IP 192.168.1.60 auf dem eine Asterisk-Telefonanlage läuft. Der Hauptbenutzer auf diesem ist root.
 

Zertifikat einrichten:
Zunächst wird ein Zertifikat eingerichtet. Hier im Beispiel ohne passphrase:

    ssh-keygen -t rsa

es wird nach passphrase gefragt den wir per Tastatur erzeugen könnten. In diesem Fall lassen wir ihn allerdings leer und Bestätigen zweimal mit Enter. Ein neue Key wurde erzeugt und in /home/%user%/.ssh gespeichert.

Raspberry_pi-logo

Bashausführung Remote ohne Kennwortabfrage

Hier und da kommt es vor das man ein Script erstellen möchte das eine anderes Debian / Linux  oder eine Raspberry steuert. Dies wäre denkbar wenn unsere Hausautomatisierung über einen Raspberry gestuert wird und

remotessh

Das neue Zertifikat können wir nun auf das Remotsystem kopieren und dem Benutzer root hinzufügen. Somit weiß das Remotesstem immer das die Identischen Zertifikate zwischen den System ohen Kennwort zugelassen werden können:

    sudo cat ~/.ssh/*.pub | ssh root@<remote-system>'umask 077; cat >>.ssh/authorized_keys'

In unserem Fall also:

Das wars schon. Nun können wir Remote Befehle ausführen. Im Bild werden die Mailboxen in einem Ordner gelöscht. Alternativ kann man auch das System neu starten, sofern der Benutzer root auf dem Remote-System die Rechte dazu besitzt.:

oder

 

Inspiriert hat mich: http://heinz-otto.blogspot.de/2017/01/per-ssh-remote-befehle-direkt-ausfuhren.html

 

Website_Design_NetObjects_Fusion

Projekte rund um Elektronik, Server, Windows und mehr


zum Geschützen Bereich