2016-06-01 18 views
1

Ich habe vor kurzem einen neuen FreeBSD-Rechner eingerichtet und kann nicht scheinen, über Emacs Tramp zu verbinden. Es bleibt bei "Tramp: gefunden Remote Shell-Eingabeaufforderung auf 'broken.example.com'". (Hostnamen für Anonymität geändert)Emacs Tramp stecken bei 'Remote-Shell-Eingabeaufforderung gefunden' während Dateiabruf

Ich habe das Debugging auf 10 erhöht, wie ich vorgeschlagen habe, und es wird bei diesem Befehl stecken bleiben.

stty icanon erase ^H cols 32767 

Dieser Befehl wird kontinuierlich in einer Schleife ausgeführt. Das vollständige Protokoll kann unter http://depht.com/temp/emacs-tramp-broken.example.com.txt

'stty -a' von broken.example.com heruntergeladen werden.

speed 9600 baud; 65 rows; 32767 columns; 
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl 
    -echoprt -altwerase -noflsh -tostop -flusho -pendin -nokerninfo 
    -extproc 
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel -ignbrk 
    brkint -inpck -ignpar -parmrk 
oflags: opost onlcr -ocrnl tab0 -onocr -onlret 
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow 
    -dtrflow -mdmbuf 
cchars: discard = ^O; dsusp = ^@; eof = ^D; eol = <undef>; 
    eol2 = <undef>; erase = ^H; erase2 = ^T; intr = ^C; kill = ^U; 
    lnext = ^V; min = 1; quit = ^\; reprint = ^R; start = ^Q; 
    status = ^T; stop = ^S; susp = ^Z; time = 0; werase = ^W; 

Ich habe eine etwas ältere OpenBSD-Maschine, dass diese gleiche Emacs Tramp Client funktioniert gut mit, working.example.com. Das Protokoll einer Verbindung zu dieser Maschine ist bei http://depht.com/temp/emacs-tramp-working.example.com.txt

‚stty -a‘ von working.example.com

speed 9600 baud; 65 rows; 166 columns; 
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl 
     -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo 
     -extproc -xcase 
iflags: -istrip icrnl -inlcr -igncr -iuclc ixon -ixoff ixany imaxbel 
     -ignbrk brkint -inpck -ignpar -parmrk 
oflags: opost onlcr -ocrnl -onocr -onlret -olcuc oxtabs -onoeot 
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -mdmbuf 
cchars: discard = ^O; dsusp = ^@; eof = ^D; eol = <undef>; 
     eol2 = <undef>; erase = ^H; intr = ^C; kill = ^U; lnext = ^V; 
     min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T; 
     stop = ^S; susp = ^Z; time = 0; werase = ^W; 

ich mit stty Einstellungen auf broken.example.com messed haben diejenigen arbeiten zu imitieren .example.com, aber ohne Erfolg. Ich verstehe nicht wirklich alle Einstellungen. Ein möglicher Angriffsweg ist 'sty pendin', was die Manpage von stty mit icanon in Verbindung bringt. Ich kann jedoch nicht auf broken.example.com festlegen. 'stty -dependin' ausgeführt entweder über Login-Skript oder nach der Anmeldung manuell führt nicht zu '-pendin' gesetzt werden.

An diesem Punkt bin ich völlig verloren, und jede Hilfe wäre sehr geschätzt. Vielen Dank im Voraus!!

Antwort

2

Beim Lesen Ihrer Trace-Dateien gibt es mehrere Probleme.

  1. Sie die Nachricht

    ControlPath "/var/folders/y8/zyh_szbx38s64w6_3_6nlhtm0000gp/T/[email protected]:1345.RPyknjfNbHeeMjoQ" too long for Unix domain socket 
    

Wahrscheinlich Ihrem lokalen Rechner läuft OS X und Sie haben gefangen Fehler http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19702. Dies ist bereits in Emacs 24.5 (Sie sollten 24.4 ausführen) gelöst, und Tramp scheint nicht daran gehindert zu werden.

  1. Tramp sendet den Befehl stty icanon erase ^H cols 32767 remote. Der Befehl selbst ist kein Problem, aber Ihr Remote-Host gibt Escape-Sequenzen zurück, die Tramp nicht versteht. Welche Shell wird remote ausgeführt, wenn Tramp /bin/sh aufruft? Was auch immer es ist, Sie müssen jede ausgefallene Dekoration aus dieser Shell deaktivieren, wie z. B. Prompt-Einstellungen oder Bildschirmbereinigung, oder was auch immer. Anleitungen dazu finden Sie im Tramp-Handbuch. Deaktivieren Sie vorübergehend die Auswertung von ~/.profile oder was auch immer die Shell während der Initialisierung lesen.