entfernter server über ssh neu restarten

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
adrian
Beiträge: 234
Registriert: 15.09.2004 20:09:46
Wohnort: Langnau CH
Kontaktdaten:

entfernter server über ssh neu restarten

Beitrag von adrian » 12.05.2006 10:09:55

hallo zusammen!

wie kann ich von einem client im netz via einer ssh verbindung einen entfernten serverdienst neu starten??
nach dieser idee:

Code: Alles auswählen

ssh root@192.168.1.10 | /etc/init.d/server restart
ok, dies funzt net....

was für möglichkeiten habe ich?
gibt es spezielle tcp server für solche aufgaben?

danke fürnen tip
gruss adrian

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von GoKi » 12.05.2006 10:13:32

Code: Alles auswählen

ssh root@192.168.1.10 "/etc/init.d/server restart"
MfG GoKi
:wq

adrian
Beiträge: 234
Registriert: 15.09.2004 20:09:46
Wohnort: Langnau CH
Kontaktdaten:

Beitrag von adrian » 12.05.2006 10:17:56

dank dir tausend mal!
manchmal ist die lösung ja so verdammt nahe!!! ;)

doch da stellt sich noch ein weiteres problem, nun möchte ich das script aus einer weboberfläche mit shell_exec neu starten.
ich denke da stellen sich irgendwelche benutzerrechte gegen mich..??

gäbe es eigentlich noch andere lösungen für sowas?
server / client prinzip??

init 0
Beiträge: 673
Registriert: 21.10.2003 19:40:28

Beitrag von init 0 » 12.05.2006 11:12:21

Hi,
nein eher das Gegenteil ist der Fall. Es ist sogar sehr einfach möglich. Die Infos hierfür
holst du dir übers Google.
Du brauchst einen Satz Schlüssel für ssh. Stichwort "preshared key". Wenn du solch einen
Key auf deinen Server für root in die Datei /root/.ssh/ authorized_keys installierst hast du die Option dem Schlüssel einen command Feld mitzugeben. Bei der richtigen Einrichtung brauchst du dich nur an deinem ssh Server mit dem richtigen Usernamen und dem richtigen Key authorisieren, ohne Passwort, und der Befehl im command Feld wird ausgeführt.
Eine normale ssh Session ist nicht mit diesem Key möglich.
Ach ja, und nix schrotten.
Ich habe einen schlechten Stil, ich weiss, Danke, wurde mir bereits gesagt.

adrian
Beiträge: 234
Registriert: 15.09.2004 20:09:46
Wohnort: Langnau CH
Kontaktdaten:

Beitrag von adrian » 12.05.2006 11:20:27

danke für deine antwort!
ich habe da wohl nicht alles gepostet...

als verbindung verwende ich das rsa zertifikat, das läuft!
hier meine code zeilen:
php code

Code: Alles auswählen

$exec=shell_exec('/usr/local/sbin/dhcp-restart');
bash script das ausgeführt wird

Code: Alles auswählen

#!/bin/sh

ssh root@192.168.10.80 -i /root/.ssh/id_rsa "/home/dhcp/dhcp-restart-extern"

wenn ich nun das bash scipt mittels dhcp-restart als root starte wird der entfernte server einwandfrei gestartet.
wenn ich allerdings auf der intranet site das shell_exec ausführe erscheint folgende fehlermedlung in der apache errorlog:

Code: Alles auswählen

Warning: Identity file /root/.ssh/id_rsa does not exist.
Host key verification failed.
und die datei ist vorhanden (hab sie mit eigenen augen gesehen !! :) )
ich denke nun es könnte an den userrechten liegen!
da ich die funktion als www-data ausführe.
wäre sudo eine lösung??

init 0
Beiträge: 673
Registriert: 21.10.2003 19:40:28

Beitrag von init 0 » 12.05.2006 11:30:30

Mit sudo würde das sicher auch gehen. Warum kopierst du die Schlüssel Datei nicht um?
An einer Stelle wo www-data zugreifen darf aber nicht durch den Webserver direkt sichtbar ist?
Ach ja, und nix schrotten.
Ich habe einen schlechten Stil, ich weiss, Danke, wurde mir bereits gesagt.

adrian
Beiträge: 234
Registriert: 15.09.2004 20:09:46
Wohnort: Langnau CH
Kontaktdaten:

Beitrag von adrian » 12.05.2006 11:43:00

ok ich hab nun die id_rsa datei nach /var/www/systme/.ssh kopiert.
nach mir sollte dies gehen.
natürlich habe ich auch noch die eigentümer und die berechtigungen geändert...
ohne erfolg!

in der apache errorlog erscheint immernoch die fehlermeldung:

Code: Alles auswählen

Host key verification failed. 
hmm??

algol
Beiträge: 25
Registriert: 24.03.2006 08:18:16

Beitrag von algol » 12.05.2006 12:39:12

Funktioniert es, wenn du (als root)

Code: Alles auswählen

sudo -u www-data /usr/local/sbin/dhcp-restart
eingibts? (im Skript hast du auch den neuen Pfad zur id_rsa-Datei angegeben?)

adrian
Beiträge: 234
Registriert: 15.09.2004 20:09:46
Wohnort: Langnau CH
Kontaktdaten:

Beitrag von adrian » 12.05.2006 13:45:04

jepp genau

mit sudo gings!
ich musste noch ein paar rechte und eigentümer ändern. aber nun kann ich den server aus der weboberfläche starten.

danke und gruss adrian

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Beitrag von ThorstenS » 12.05.2006 14:32:48

Wenn du die Rechte unter /root und vor allem /root/.ssh zu offen setzt, nimmt dein ssh den key nicht an, weil er kompromitiert sein könnte.
An dem Problem habe ich auch mal eine Weile geknabbert ;)

Antworten