Kann sich nach der Installation von Gitolite nicht bei ssh anmelden? PTY-Zuordnungsanforderung auf Kanal 0 fehlgeschlagen

5615
Jay

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

Mir wurde klar, dass es mir gelungen ist, 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 habe ich jedes Mal versucht, mich erneut über ssh anzumelden: $ ssh root @ iptonas

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

Ich habe irgendwo gelesen, dass Gitolite SSH-Anmeldungen jetzt deaktiviert? Wie kann ich sonst in die Schale zurückkehren ..?

2
Hat meine vorherige Antwort funktioniert? http://superuser.com/a/430902/141 VonC vor 12 Jahren 0

1 Antwort auf die Frage

2
VonC
error: PTY allocation request failed on channel 0 

Vollkommen normal, erwartet und nicht blockierend (dh die ssh-Operation würde verfolgen)

Sie haben jedoch die Installation als root vorgenommen, was besonders bei der Betrachtung der ssh-Gitolite-Seite schlecht ist :

Wenn Sie Gitolite installieren, sind Sie ein "Systemadministrator", ob es ihm gefällt oder nicht .
Wenn Sie den voreingestellten ssh-Modus verwenden (dh nicht den http-Modus), ist ssh eine notwendige Fertigkeit. Bitte nehmen Sie sich die Zeit, mindestens genug zu lernen, um den passwortlosen Zugriff zu ermöglichen.

Der wichtigste Aspekt in Gitolite ist die Verwendung eines erzwungenen Befehls, um die interaktive Shell abzulehnen und jeden Befehl (einschließlich der git-Befehle) abzufangen, wodurch die Zugriffskontrolle für Git-Repos erzwungen wird.

Das heißt, Ihre ~root/.ssh/authorized_keysDatei enthält eine Zeile mit:

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 

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

Siehe " Wie verwendet Gitolit all diese SSH-Magie? ".

Informationen zum SSH- Problem finden Sie unter " SSH-Problembehandlung ".
Sie müssen durch eine andere Art und Weise Zugriff auf Ihren Server gewinnen als ssh, und entfernen Sie die Zeile beginnend von commandin ~root/.ssh/authorized_keys.


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

Einmal als root angemeldet:

  • Entferne die Zeile mit dem Befehl in der ~root/.ssh/authorized_keysDatei.
  • Vergewissern Sie sich, dass Ihr öffentlicher Stammschlüssel in derselben Datei registriert ist (also ohne ' command=' davor.).

Dadurch wird ein Root-Zugriff über ss sichergestellt.

Dann wiederholen Sie die Installation, aber mit einer sudo gitersten.
Sie müssen "git" sein, wenn Sie diese Installation durchführen.

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

Und wie Ryan in seiner Antwort erwähnt, benutzt

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

(um die Installation mit ~git/bindem /binVerzeichnis "Systempfad root-protected" zu verknüpfen ).

Vielen Dank! Das klärt die Sache ein bisschen. Aber was meinen Sie genau mit "es ist schlimm, dass ich über root installiert habe"? Was sind die Auswirkungen? Und gibt es eine Möglichkeit, einen Schritt zurückzutreten und es richtig zu wiederholen? Jay vor 12 Jahren 0
@Jay Die Unannehmlichkeit einer Root-Installation besteht in der Möglichkeit, sich vom Server zu sperren (dh, wenn Sie nur über SSH-Zugriff verfügen). Sie können den Installationsvorgang einfach wiederholen, diesmal jedoch zunächst mit einem 'Sudo git'. VonC vor 12 Jahren 1
Nun, die andere Option ist Telnet, aber ich habe keine Ahnung, was das ist. Ja, ich glaube, ich habe mich ausgesperrt. Gibt es eine Möglichkeit, dies rückgängig zu machen? Jay vor 12 Jahren 0
@Jay keine Möglichkeit, die ich kenne, aber Explorer diese Telnet-Option (es ist ein Dienst wie SSH außer ohne Verschlüsselung). Versuchen Sie es mit einem `telnet @ ip_of_your_server` und prüfen Sie, ob Sie auf diese Weise eine Verbindung herstellen können. VonC vor 12 Jahren 1
Ok, ich kann mich über Telnet einloggen. Wissen Sie, wie ich mit Telnet den Installationsprozess von Gitolite wiederholen kann? Vielen Dank für all Ihre Hilfe! Jay vor 12 Jahren 0
@Jay: Antwort bearbeitet VonC vor 12 Jahren 0