Hallo,
Ik had graag jullie hulp met het volgende:
op server A draait PHP en dus ook een webserver. Ik wens via PHP op server A een bash script uit te voeren op server B.
Voor zover ik kan lezen zou dit perfect moeten lukken dmv volgend commando in PHP:
De eigenaar van server B heeft voor mij een user aangemaakt "USER", maar het probleem is dat de ssh in feite door www-data wordt uitgevoerd, dus waarschijnlijk is dit de reden waarom het niet werkt.
Als ik rechstreeks met user USER in command line op de machine
uitvoer, dan lukt dit wel.
Ik vermoed dat er ergens een probleem is met het uitwisselen van security keys wanneer ik PHP gebruik. Immers wanneer ik
dan lukt het ook niet. Ook ssh USER@<serverB>... werkt ook niet.
Ik zou dit bijvoorbeeld kunnen omzeilen door via PHP een touch FILE te doen, en dan via crontab laten checken of de file aanwezig is of niet. Indien aanwezig, kan ik via cron user het script op de andere server laten uitvoeren, maar dit is niet zo overzichtelijk en omslachtig.
Iemand een idee? Misschien de exec ssh uitvoeren en hierbij keys doorgeven of zo? www-data alle rechten geven zou ook moeten werken, maar dit is uiteraard niet de bedoeling.
Beste groeten,
J.
Ik had graag jullie hulp met het volgende:
op server A draait PHP en dus ook een webserver. Ik wens via PHP op server A een bash script uit te voeren op server B.
Voor zover ik kan lezen zou dit perfect moeten lukken dmv volgend commando in PHP:
Code:
exec("ssh <serverB> \"pathtoscript/testscript.sh\"");
De eigenaar van server B heeft voor mij een user aangemaakt "USER", maar het probleem is dat de ssh in feite door www-data wordt uitgevoerd, dus waarschijnlijk is dit de reden waarom het niet werkt.
Als ik rechstreeks met user USER in command line op de machine
Code:
ssh <serverB> "pathtoscript/testscript.sh"
Ik vermoed dat er ergens een probleem is met het uitwisselen van security keys wanneer ik PHP gebruik. Immers wanneer ik
Code:
sudo su - www-data
Ik zou dit bijvoorbeeld kunnen omzeilen door via PHP een touch FILE te doen, en dan via crontab laten checken of de file aanwezig is of niet. Indien aanwezig, kan ik via cron user het script op de andere server laten uitvoeren, maar dit is niet zo overzichtelijk en omslachtig.
Iemand een idee? Misschien de exec ssh uitvoeren en hierbij keys doorgeven of zo? www-data alle rechten geven zou ook moeten werken, maar dit is uiteraard niet de bedoeling.
Beste groeten,
J.