phpseclib sftp-Verbindung mit dem privaten Schlüssel und Passwort
Es ist trotzdem schließen Sie das sftp-sowohl der private Schlüssel und das ftp-Passwort durch die Verwendung von phpseclib oder jede andere Methode.
- Können Sie uns mehr über Ihre spezifische situation, oder die Ressource, die Sie getan haben, um zu versuchen und finden Sie die Antwort selbst, und warum diese Antworten nicht für Sie arbeiten? Versuchen Sie, diese Frage ALSO: stackoverflow.com/questions/13806699/...
- Möglich, Duplikat der phpseclib - Kann ich eine Verbindung mit Benutzername, Schlüssel-und Passwort (Nicht mit einem Schlüssel (Passwort)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es ein bisschen selten, dass SFTP-Server verwenden sowohl ein Kennwort als auch publickey-Authentifizierung. Meine Vermutung wäre, dass das, was Sie wahrscheinlich haben, ist, einen passwortgeschützten privaten Schlüssel. Wenn ja, können Sie sich folgendermassen:
Wenn tatsächlich euer server ist wirklich beides zu machen, sollte Folgendes funktionieren:
define('NET_SSH2_LOGGING', 2)
und$ssh->getLog()
. Linie, zahlen, die durch sich selbst sind nicht super hilfreich. Unter anderem.. welche version Sie ausführen? 0.3.1 oder die neueste Git-version? Oder ein Git-version auf, die hinter 2-3 begeht? Und auch wenn ich wusste, dass die logs wären noch hilfreicher..Ich würde sagen, einfach versuchen, das Kennwort auth von selbst.
Hier ist passiert, was pro die Protokolle.
phpseclib sendet eine SSH_MSG_SERVICE_REQUEST an den server, effektiv sagen: "hey - ich will auth - das okay?"
Antwortet der server mit einem SSH_MSG_SERVICE_ACCEPT, effektiv sagen, "klar - schick mir was du hast!"
phpseclib sendet dann eine SSH_MSG_USERAUTH_REQUEST mit dem öffentlichen Schlüssel entsprechend dem privaten Schlüssel, effektiv sagen: "ok - lassen Sie die auth-mit meinem privaten Schlüssel, um sicherzustellen, du wirst es akzeptieren... ist das public-key in Ihrer weißen Liste?"
Der server antwortet dann mit einer NET_SSH2_MSG_USERAUTH_PK_OK Nachricht, effektiv sagen, "ätsch, wir sind okay mit dem key - bitte melden Sie die server-id mit it now".
phpseclib tut dies und dann ist der server wie "never mind! ich erinnerte mich nur - die einzige Art von auth ich Tue, ist Passwort-basierte auth!"
phpseclib geht "meh" lol und dann sendet ein anderer SSH_MSG_SERVICE_REQUEST, fragt auth, erneut, und der server ist wie "was?! warum Fragen Sie auth!?"
Scheint, wie phpseclib vielleicht sollten nicht senden, die zweite SSH_MSG_SERVICE_REQUEST Botschaft, dass es sollte direkt eine SSH_MSG_USERAUTH_REQUEST - aber leider ist es gegenwärtig nicht tun. Ich werde versuchen, aktualisieren Sie die codebase, genau das zu tun und legt einen pull-request an den Autor.
Dank!
if (!$sftp->login('********', $rsa) && !$sftp->login('********', '********')) {
mitif (!$sftp->login('********', '********')) {
hat den trick. Die PHP-lib sollte wohl geändert werden, sowieso, aber in Ihrem Fall ich denke, Sie können es für die Arbeit mit der lib da ist.