PHP User wechseln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP User wechseln

    Guten Morgen,

    ich stehe hier vor einem kleinen Problem und weiß nicht ganz, wo ich ansetzen soll.

    Problembeschreibung: Es soll eine SFTP Verbindung zu einem entfernten Server hergestellt werden. Die Verbinung läuft über das SSH2 / SFTP Modul und die Authentifizierung wird über einen publicKey erledigt. Nun kann ich aber mit dem User, unter dem PHP auf dem Linux Server ausgeführt wird, das publicKey File nicht öffnen.

    Fehlermeldung:
    Code:
    Warning: ssh2_auth_pubkey_file() [function.ssh2-auth-pubkey-file]: Authentication failed for MeinUsername using public key: Unable to open public key file in /pfad/bla/blubb/test.php on line 33
    Could not authenticate with username MeinUsername and private key
    Frage: Besteht eine Möglichkeit den PHP User während der Laufzeit zu wechseln oder besteht eine andere Möglichkeit, die ich momentan einfach nicht sehe? Wenn ja, welche?
    MM Newmedia | MeinBlog

  • #2
    Rechte der Datei so setzen, dass der User unter dem PHP läuft die Datei lesen kann?
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      Hallo,

      es ist leicht von Vorteil wenn du den Code mit dem du die Verbindung machst postest

      PHP-Code:
      ssh2_auth_password($ssh2'deinneuerusername''deintollespasswort'); 
      Einpacken & Mitnehmen - SEO und CMS/Shop-Lösungen

      Kommentar


      • #4
        Okay, meiner Meinung nach spielt der PHP Code zur Verbindung via pubKey keine großartige Rolle, da es mir eher um den Zugriff auf das pubKey File geht. Aber dennoch hier beispielhafter Code ...
        PHP-Code:
        $host 'sftp.domain.tld';
        $port 22;
        $username 'username';
        $password '';
        try {
                
        $connection ssh2_connect($host$port);
                if (!
        $connection) {
                    throw new 
        Exception("Could not connect to " $host " on port " $port);
                }


            if (!
        ssh2_auth_pubkey_file($connection$username'/var/www/vhosts/user/.ssh/username.pub''/var/www/vhosts/user/.ssh/username'$password)) {
                throw new 
        Exception("Could not authenticate with username " $username " and private key");
            }
        } catch(
        Exception $e) {
            die(
        $e->getMessage());

        Mein derzeitiger Lösungsansatz sieht momentan so aus, dass ich ein neues keyPair generiert habe, welches dem User, unter dem PHP ausgeführt wird, zugeordnet ist. Aus meiner Sicht der einfachere Weg, anstatt jetzt in der PHP Konfiguration Zugriffe auf Pfade zu erlauben, umständliche User-Wechsel zu programmieren, etc.

        Übrigens ist ein Zugriff per chmod() auf das .ssh Verzeichnis nicht möglich.
        MM Newmedia | MeinBlog

        Kommentar


        • #5
          Zitat von ezkimo Beitrag anzeigen
          Übrigens ist ein Zugriff per chmod() auf das .ssh Verzeichnis nicht möglich.
          Ok - du hast also keine Root-Rechte auf dem Server.
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar

          Lädt...
          X