Verwendung von Emacs TRAMP mit einem SSH-Server, der / bin / sh nicht zur Verfügung stellt?

9

Ich versuche, Emacs TRAMP zu verwenden, um auf Dateien über SSH auf einem Server zuzugreifen, der /bin/sh nicht bereitstellt, und so erhalte ich den folgenden Fehler, wenn ich versuche, eine Verbindung herzustellen:

%Vor%

Gibt es eine Möglichkeit, TRAMP mitzuteilen, wo sich die entfernte Shell für diesen Server befindet? (Der "Server" ist ein verbundenes Android-Telefon, also bei /system/bin/sh .)

    
Ryan Thompson 17.05.2012, 03:26
quelle

2 Antworten

6

Siehe auch den Docstring für die Variable tramp-methods . Dieser Teil erscheint bemerkenswert:

  
  • tramp-remote-shell
      Dies gibt die Shell an, die auf dem Remote-Host verwendet werden soll. Dies   MUSS eine Bourne-ähnliche Shell sein. Es ist normalerweise nicht notwendig   Setzen Sie dies auf einen anderen Wert als "/ bin / sh": Tramp möchte   Verwenden Sie eine Shell, die Erweiterungen erweitert, aber es kann suchen   dafür. Beachten Sie auch, dass "/ bin / sh" auf allen Unixen existiert,   Dies trifft möglicherweise nicht auf den Wert zu, den Sie verwenden möchten.   Sie wurden gewarnt.
  •   

Bearbeiten:

Hier können Sie also eine neue Methode basierend auf einer vorhandenen Methode ("scpc" in diesem Beispiel) erstellen und dann der benutzerdefinierten Methode eine andere Remote-Shell zuweisen:

%Vor%

Beachten Sie, dass diese Eigenschaft in Emacs 23 (Tramp 2.1.20) tramp-remote-sh genannt wurde. In Emacs 24 (Tramp 2.2.3-24.1) wurde es in tramp-remote-shell geändert.

Und ich vermute, dass Sie diese Methode standardmäßig für Ihren angegebenen Host verwenden können:

%Vor%     
phils 17.05.2012, 03:41
quelle
-1

ssh erwartet die Verwendung der Login-Shell des Remote-Benutzers. Wenn Sie Root-Zugriff auf den Server haben, können Sie den Eintrag in der passwd-Datei ändern:

: blah: blah: benutzername: blah: / pfad / zu / shell

Oder einfach symlink / bin / sh dazu.

Ich glaube nicht, dass es eine Möglichkeit gibt, dies von der Seite des Kunden zu ändern, aber wenn das der Fall ist, müssten Sie ssh , nicht TRAMP angeben. (Sie könnten dies über eine ssh_config-Datei tun.)

Bearbeiten: Ich stehe korrigiert.

    
jpaugh 17.05.2012 03:32
quelle

Tags und Links