SorgenkindMech: ssh2 vs putty

Hallo liebes Forum,

ich versuche gerade ene SSH2-Verbindung zu einem Server herzustellen, dabei stoße ich jedoch auf enige hürden, wo ich doch hoffe, dass mir geholfen werden kann ;)

ich habe hier eine art interaktives Terminal (verzeiht die ausführliche erklärung, ich weiß nicht wie normal oder unnormal das ist ;) )

man verbindet sich per putty zu einem server, es gibt einen host, einen port, einen benutzernamen, und ein ppk-file, mehr wird in putty nicht benötigt
das terminal zeigt mir dann einen buten login an, mit feldern wie in einem formular, welche ich mit TAB durchlaufen kann
dort kann ich mich einloggen und durchlaufe quasi verschiedene formulare, mit formularfeldern, wo manche nur ziffern, manche nur buchstaben erfordern und gleich beispielsweise direkt einen fehler ausgeben

ok bis hierhin blabla ;)

nun wollte ich gern das ganze mit PHP "ansteuern", also stelle ich eine verbindung mit dem server per $connection = ssh2_connect('host', 22, null, array('hostkey' => 'ssh-rsa'));

her, das funktioniert soweit

nun versuche ich folgendes:
ssh2_auth_pubkey_file($connection, 'benutzername', 'key.pub','key.ppk')

key.pub habe ich mit puttygen aus der ppk-datei heraus erzeugt, die ppk-date ist die, die ich auch mit putty verwende um die verbindung herzustellen

die funkion gibt jedoch false zurück, weshalb ich davon ausgehe, dass der server die schlüssle nicht angenommen hat.

im weiteren verlauf wollte ich dann eine shell-starten, vermute ich mal um dann an das terminal zu kommen, es auszulesen und die kommandos zu senden ...

weiß schon jemand wo mein fehler liegt?

ich vermute mal, dass ich es falsch umgesetzt habe

liebe Grüße

euer SorgenkindMech

  1. Tach,

    ssh2_auth_pubkey_file($connection, 'benutzername', 'key.pub','key.ppk')

    key.pub habe ich mit puttygen aus der ppk-datei heraus erzeugt, die ppk-date ist die, die ich auch mit putty verwende um die verbindung herzustellen

    IIRC verwendet putty ein anderes Format um Schlüsel abzuspeichern als OpenSSH, du musst deine beiden Key-Teile also vorher noch umwandeln.

    mfg
    Woodfighter

    1. Tach,

      ssh2_auth_pubkey_file($connection, 'benutzername', 'key.pub','key.ppk')

      key.pub habe ich mit puttygen aus der ppk-datei heraus erzeugt, die ppk-date ist die, die ich auch mit putty verwende um die verbindung herzustellen

      IIRC verwendet putty ein anderes Format um Schlüsel abzuspeichern als OpenSSH, du musst deine beiden Key-Teile also vorher noch umwandeln.

      mfg
      Woodfighter

      hallo Woodfighter,

      ich habe nun mittels puttygen das original-ppk-file geladen, habe dann über conversions -> export openssh key ein neues keyfile exportiert und die key.ppk überschrieben, dann habe ich nochmal save public key gemacht und die key.pub überschrieben, leider bringt dies keine besserung. ist vielleicht key.pub in diesem fall der openssh key?

      LG SorgenkindMech

      1. hi,

        du brauchst den PPK, da nur das dein privater key ist!
        Mit dem über puttygen erzeugten, bekommst du den Public key, welcher auf dem server liegen muss /root/.ssh/authorized_keys

        dabei darf der pubkey jedem bekannt sein, der private nicht!!!!

        Dann sollte das ganze auch funktionieren.

        Oder hab ich dich falsch verstanden und du hast einen ganz neuen key erzeugt?

        Gruß Niklas

        --
        Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.
        1. hi,

          du brauchst den PPK, da nur das dein privater key ist!
          Mit dem über puttygen erzeugten, bekommst du den Public key, welcher auf dem server liegen muss /root/.ssh/authorized_keys

          dabei darf der pubkey jedem bekannt sein, der private nicht!!!!

          Dann sollte das ganze auch funktionieren.

          Oder hab ich dich falsch verstanden und du hast einen ganz neuen key erzeugt?

          Gruß Niklas

          Hi Niklas,

          nein der Key ist vorgegeben und ist ein ppk, also ein Putty-eigenes Format
          ssh2_connect erwartet ja von mir sowohl einen public als auch ein private-key
          nur leider scheine ich nicht in der lage zu sein, das / die richtige(n) format(e) zu konvertieren, damit die authentifikation funktioniert

          LG euer SorgenkindMech

          1. Tach!

            nein der Key ist vorgegeben und ist ein ppk, also ein Putty-eigenes Format
            ssh2_connect erwartet ja von mir sowohl einen public als auch ein private-key

            Aber kein PPK sondern im OpenSSH-Format.

            nur leider scheine ich nicht in der lage zu sein, das / die richtige(n) format(e) zu konvertieren, damit die authentifikation funktioniert

            PuTTYgen erzeugt beim Conversions -> Export OpenSSH key nur den privaten Schlüssel. Den öffentlichen bekommst du meines Wissens nur durch Kopieren aus dem oberen Feld ("Public key for pasting..."), das du nach dem Laden angezeigt bekommst.

            dedlfix.