SSH mit PHP

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

  • SSH mit PHP

    Hallo zusammen

    Bin nun dabei, eine SSH-Verbindung zu einem Server bei einer Bank aufzubauen. Den Public/Privat-Key habe ich mit OpenSSH mit dem Befehl:
    -> ssh-keygen -t rsa -b 2048
    generiert und der Bank den Public-Key zugestellt. Ein Passwort habe ich nicht angegeben.

    Soweit so gut..

    Hier nun mal mein Test-Code:
    PHP-Code:
    $connection ssh2_connect('ftsgate.XXX.com'22, array('hostkey'=>'ssh-rsa'));

    if(
    $connection == FALSE) {
        echo 
    "Connection failed";
    }
    // Der ssh2_connect() gibt TRUE zurück und der Admin bei der Bank kann in den Logfiles auch sehen, dass ich rein komme.

    if (ssh2_auth_pubkey_file($connection'''/inc/gozo_rsa.pub''/inc/gozo_rsa')) {
      echo 
    "Public Key Authentication Successful\n";
    } else {
      echo(
    'Public Key Authentication Failed');

    Der ssh2_auth_pubkey_file() gibt jedoch folgenden Fehler zurück:
    Warning: ssh2_auth_pubkey_file() [function.ssh2-auth-pubkey-file]: Authentication failed for [username (falls angegeben)] using public key in C:\wwwroot\FinanceKomm07\test.php on line 14

    Ich weis nicht woran das liegt. Einen username musste ich beim ssh-keygen ja auch nicht angeben.

    Testhalber hab ich dann noch folgende Funktion ausgeführt:

    PHP-Code:
    $methods ssh2_methods_negotiated($connection); 
    Diese liefert folgenden Output:
    Encryption keys were negotiated using: diffie-hellman-group-exchange-sha1
    Server identified using an ssh-rsa with fingerprint: C4244D2DD9313E95C0F35EC08A2A5436
    Client to Server packets will use methods:
    Crypt: aes128-cbc
    Comp: none
    MAC: hmac-sha1
    Server to Client packets will use methods:
    Crypt: aes128-cbc
    Comp: none
    MAC: hmac-sha1

    Hat jemand ein bisschen mehr Plan, was ich da falsch mache bzw. vergessen habe?

    Danke für eure Hilfe
    Philipp

  • #2
    Hat denn echt niemand eine Idee wo der Hund begraben liegen könnte?

    Bin für jeden Vorschlag wo ich noch suchen könnte offen....

    Hab nun noch testhalber Cygwin auf die Kiste gepackt und damit bekomme ich eine sFTP-Verbindung.

    Danke und Gruss
    Philipp

    Kommentar


    • #3
      Ohne mich in der Materie genau auszukennen: Wo kommt das "username (falls angegeben)" her?

      Authentication failed for [username (falls angegeben)]

      Kommentar


      • #4
        Der kommt aus folgender Funktion:
        PHP-Code:
        ssh2_auth_pubkey_file($connection'username''/inc/gozo_rsa.pub''/inc/gozo_rsa''passwort'
        Meinen Key habe ich laut Bankanweisung mit folgendem Befehl mit OpenSSH erstellt:
        ssh-keygen -t rsa -b 2048

        Dieser verlangt keinen Username, nur ein (optionales) Passwort.

        Mit Cygwin kann ich die Verbindung mit folgendem Befehl aufbauen:
        sftp sfxp.benutzername@ftsgate.bankname.com

        -----------------------------------
        Nachtrag:
        Ich hab mittlerweile auch einen Fingerprintabgleich mit
        PHP-Code:
        ssh2_fingerprint($connectionSSH2_FINGERPRINT_MD5 SSH2_FINGERPRINT_HEX); 
        gemacht. Auch der ist erfolgreich...

        Wenn ich das richtig interpretiere dann kriege ich Verbindung zum Server, aber die Authentifizierung will einfach nicht....
        Zuletzt geändert von philippCH; 25.04.2007, 17:38.

        Kommentar


        • #5
          Was ist username, eine Variable?
          Was ich meinte, war das "(falls angegeben)", wo kommt das her? Hast Du das manuell hier im Post reingesetzt?

          Kommentar


          • #6
            Ui, deine Frage falsch verstanden....

            Ja, das hab ich als Hinweis reingeschrieben....

            Den Username in der Funktion kannst du direkt in die Funtkion schreiben oder in einer Variable übergeben, denke ich mal... Genau kann ich das auch nicht sagen. Bin ja noch nicht soweit gekommen, das wirklich probieren zu können.

            Kommentar

            Lädt...
            X