Frage

Ich möchte PHP verwenden, um ein Shell-Skript auszuführen, das eine Datei von Server 1 an Server 2 sendet.Ich habe den öffentlichen Schlüssel von Server 1 auf die autorisierten Schlüssel von Server 2 geschrieben und es funktioniert perfekt.

Aus irgendeinem Grund sendet das folgende Skript die Datei nicht wirklich von Server 1 an Server 2:

// This is a webpage at http://server1.com/sendfile.php
<?php
if($_POST['a'])
{
        echo '<pre>';
        echo passthru('./scp.sh');
        echo '</pre>';
}
?>

<form method="post">
<button name="a" value="Af">Send File</button>
</form>

//This is the contents of scp.sh
scp ../dbexport/db.txt someuser@server2.net:

Also, wenn ich ausführe scp.sh Vom Terminal aus funktioniert alles einwandfrei – die Datei wird tatsächlich gesendet und empfangen.

Aber wenn ich gehe http://server1.com/sendfile.php und drücken Sie die Taste, die PHP-Datei führt tatsächlich die Shell-Datei aus (ich habe dies bestätigt, indem ich Echo-Anweisungen vor und nach dem Befehl scp eingefügt habe), aber die Datei wird nie erfolgreich von server2.com empfangen

Weiß jemand, woran das liegen könnte?

War es hilfreich?

Lösung

Marc B hat meine Frage mit einem Kommentar beantwortet und hier gepostet

Haben Sie den Schlüssel zu den „authorized_keys“ des Webserver-Kontos hinzugefügt?Nur weil es von einer Shell aus funktioniert, die unter IHREN Berechtigungen läuft, hat das absolut nichts mit einer Shell zu tun, die unter der ID des Webservers läuft.– Marc B 9. Januar um 19:47

Ooooh yeahhhhh...das habe ich vergessen – John, 9. Januar um 19:57

Ja, es hat funktioniert.Danke Marc!– John 9. Januar um 20:42

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top