Sie können sich nach der Installation von Gitolite nicht bei SSH anmelden? Die PTY-Zuweisungsanforderung ist auf Kanal 0 fehlgeschlagen.

Sie können sich nach der Installation von Gitolite nicht bei SSH anmelden? Die PTY-Zuweisungsanforderung ist auf Kanal 0 fehlgeschlagen.

Nachdem ich Gitolite gemäß diesen Anweisungen auf meinem Synology DiskStation NAS installiert habe: http://www.bluevariant.com/2012/05/comprehensive-guide-git-gitolite-synology-diskstation/

Mir fiel auf, dass ich es geschafft hatte, Gitolite zu installieren, aber aus irgendeinem Grund konnte ich die Installation nicht mit dem Benutzer „git“ ausführen – aber ich konnte dies als „root“ tun.

Nach der Installation habe ich mich abgemeldet. Aber jetzt jedes Mal, wenn ich versuche, mich erneut über SSH anzumelden: $ ssh root@iptonas

Ich habe diesen Fehler erhalten: PTY-Zuweisungsanforderung auf Kanal 0 fehlgeschlagen

Ich habe irgendwo gelesen, dass Gitolite jetzt SSH-Anmeldungen deaktiviert. Wie kann ich sonst wieder in die Shell gelangen?

Antwort1

error: PTY allocation request failed on channel 0

Völlig normal, wie erwartet und nicht blockierend (d. h. der SSH-Vorgang würde fortgesetzt)

Allerdings haben Sie die Installation als Root durchgeführt, was schlecht ist, insbesondere wenn man bedenkt,ssh Gitolite-Seite:

Wenn Sie Gitolite installieren, sind Sie ein „Systemadministrator“, ob Sie es wollen oder nicht.
Wenn Sie den Standard-SSH-Modus verwenden (also nicht den HTTP-Modus), ist SSH eine notwendige Fähigkeit. Bitte nehmen Sie sich die Zeit, zumindest so viel zu lernen, dass der passwortlose Zugriff funktioniert.

Der wichtigste Aspekt von Gitolite ist die Verwendung vonerzwungener Befehl, um die interaktive Shell zu verweigern und beliebige Befehle (einschließlich der Git-Befehle) abzufangen, wodurch die Zugriffskontrolle auf Git-Repos erzwungen werden kann.

Das bedeutet, dass Ihre ~root/.ssh/authorized_keysDatei eine Zeile mit folgender Zeile enthält:

command="/devit_home/users/vobadm/gitpoc/ce7/gitolite/bin/gitolite-shell gitoliteadm",no-port-forwarding,no-X11-for        warding,no-agent-forwarding,no-pty ssh-rsa AAAAB3N

Dies no-port-forwardingist für die Warnmeldung " PTY allocation request failed on channel 0" verantwortlich. Dies verhindert jedoch nicht, dass Gitolite-Operationen ordnungsgemäß ausgeführt werden.

Sehen "wie nutzt Gitolite all diese SSH-Magie?".

Bei SSH-Problemen schauen Sie in "SSH-Fehlerbehebung".
Sie müssen auf andere Weise als auf Ihren Server zugreifen sshund die Zeile entfernen, die mit commandin beginnt ~root/.ssh/authorized_keys.


Wissen Sie, wie ich den Gitolite-Installationsprozess mithilfe von Telnet wiederholen kann?

Sobald Sie als Root angemeldet sind:

  • Entfernen Sie in der Datei die Zeile, die mit dem Befehl beginnt ~root/.ssh/authorized_keys.
  • Stellen Sie sicher, dass Ihr öffentlicher Root-Schlüssel in derselben Datei registriert ist (also ohne „ command=“ davor).

Dadurch wird ein Root-Zugriff über SS sichergestellt.

Führen Sie die Installation dann erneut durch, allerdings mit einem „ sudo gitFirst“.
Sie müssen bei der Installation „git“ sein.

Sie müssen zunächst auf der Clientseite einen gitprivaten SSH-Schlüssel und einen git.puböffentlichen Schlüssel generieren.
Kopieren Sie den öffentlichen Schlüssel auf den Server: Sie übergeben diesen öffentlichen Schlüssel an den gitolite installBefehl.

Und wieRyanErwähnungen inseine Antwort, Verwendet

DiskStation> /volume1/homes/git/gitolite/install -ln

(um die Installation mit ~git/bineinem anderen Verzeichnis als dem "Systempfad root-geschützt" zu verknüpfen /bin).

Antwort2

Ich stimme zu, dass Gitolite wahrscheinlich nicht als Root ausgeführt werden sollte. Ich habe diesen Fehler auch gemacht. Ich füge nur einige zusätzliche Informationen hinzu, falls es hilft.

Ich konnte dennoch als Root per SSH auf die Zielmaschine zugreifen, indem ich meinem SSH-Befehl die folgenden Flags hinzugefügt habe:

PreferredAuthentications=keyboard-interactive,password -o PubkeyAuthentication=no

Dies setzt natürlich voraus, dass Ihrem Root-Konto ein Passwort zugeordnet ist. Sie können sich aufgrund der Art und Weise, wie Gitosis die SSH-Datei known_hosts bearbeitet, nicht mit einem privaten Schlüssel authentifizieren. Diese Datei wird jedoch in keiner Weise konsultiert, wenn Sie Ihre bevorzugte Authentifizierung mit den oben aufgeführten Flags angeben.

verwandte Informationen