PHP Script soll sich auf einen Server einloggen und einen Befehl ausführen

Der ".ssh" Ordner auf der Synology liegt jetzt in "/var/services/homes/admin/.ssh/"

Die Dateien "automat_rsa" und "automat_rsa.pub" liegen jetzt in "/var/services/homes/admin/.ssh/"
 
Die ssh.php liegt dann in "/var/services/web/ssh/" also "/var/services/web/ssh/ssh.php"
 
Last edited by a moderator:
Ich kenne mich mit der Synolgy halt nicht aus.
Ich gehe mal davon aus das ist ok.

Du rufst dann im Browser <IPvonSynology>/ssh/ssh.php auf
 
Ja genau. http://192.168.178.22/ssh/ssh.php

Das PHP Skript sieht jetzt so aus:

PHP:
$connection = ssh2_connect('192.168.178.22', 22, array('hostkey'=>'ssh-rsa')); 

if (ssh2_auth_pubkey_file($connection, 'automat', 
                                       '/var/services/homes/admin/.ssh/automat_rsa.pub', 
                                       '/var/services/homes/admin/.ssh/automat_rsa')) { 
  echo "Public Key Authentication Successful\n"; 
} else { 
  die('Public Key Authentication Failed'); 
} 
$stream = ssh2_exec($connection, 'sudo /opt/test/test.sh'); 
?>
 
Wollte ja nur sagen wo was liegt usw.

Aber es klappt leider nicht "Public Key Authentication Failed"

Müssen die automat_rsa.pub und automat_rsa noch rechte haben?
 
Wollte ja nur sagen wo was liegt usw.

Aber es klappt leider nicht "Public Key Authentication Failed"

Müssen die automat_rsa.pub und automat_rsa noch rechte haben?

Das habe ich leider vergessen zu schreiben genau.
Ich habe da den Webbenutzer und Gruppe genommen.
Beim Apache Webserver auf Debian wäre das www-data.
Gib einfach im webverzeichnis ls -la ein da bekommst du das angezeigt.
und chmod 400 dann hat nur der Nutzer Leserechte
 
Code:
admin@DiskStation:/var/services/web$ ls -la
total 28
drwxrwxrwx+  6 root  root  4096 Jan 24 23:36 .
drwxr-xr-x  30 root  root  4096 Jan 26 15:19 ..
drwxrwxrwx+  2 admin users 4096 Jan  7 15:06 dlc
drwxrwxrwx+  3 root  root  4096 Jan 26 15:19 @eaDir
drwxrwxrwx+  2 admin users 4096 Jan 26 15:09 ssh
drwx--x--x   2 http  http  4096 Jan  7 14:54 web_images
 
Es geht nicht:

Code:
admin@DiskStation:~/.ssh$ chown http:http *
chown: changing ownership of ‘automat_rsa’: Operation not permitted
chown: changing ownership of ‘automat_rsa.pub’: Operation not permitted

Wäre das für den Ordner "ssh" wo die "ssh.php" liegt
Code:
drwxrwxrwx+  2 admin users 4096 Jan 26 15:09 ssh

dann nicht admin und users und nicht http und http?
 
Das muss der Benutzer sein unter dem der Webserver läuft das ist bei dir http.
Du scheinst keine Rootrechte auf der Synology zu haben, die brauchst du aber um die Rechte zu ändern. hast du dich nicht als root angemeldet ?
Ich habe mich schon gewundert das du kein root Verzeichnis hast.
probiere die befehle mal mit sudo und dem Admin Passwort der Synolgy
 
Ok, mit "sudo chown http:http *" hat es nun geklappt. Aber es kommt immer noch "Public Key Authentication Failed"
 
dann probieren wir mal ob die Anmeldung von der synolgy überhaupt geht.
gib auf der Konsole von der Synology mal folgendes ein:
Code:
ssh automat@192.168.178.22 -i /var/services/homes/admin/.ssh/automat_rsa
 
Nur mit dem Passwort von automat:

Code:
admin@DiskStation:~/.ssh$ ssh automat@192.168.178.22 -i /var/services/homes/admin/.ssh/automat_rsa
The authenticity of host '192.168.178.22 (192.168.178.22)' can't be established.
ECDSA key fingerprint is SHA256:lZusiVPikkGBBaE+2amLBnT3ifPNdkFCw2rnkWTkNX4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.178.22' (ECDSA) to the list of known hosts.
Load key "/var/services/homes/admin/.ssh/automat_rsa": Permission denied
automat@192.168.178.22's password:
 
Back
Top