Subject: Re: bug#46466: 28.0.50; Tramp hangs with bad prompt even when using /bin/sh

From: Erik Hetzner <[email-masked]>
Date: Wed, 16 Jun 2021 07:38:03 -0700

Hi Michael,

On Mon, 14 Jun 2021 05:10:14 -0700,
Michael Albinus <[email-masked]> wrote:
> 
> Erik Hetzner <[email-masked]> writes:
> 
> > Hi Michael,
> 
> Hi Erik,
> 
> > Thank you so much for these explanations. Tramp is a great product and
> > I know that it has made a lot of accommodations to a heterogeneous
> > environment to make it work so well! I’ll keep exploring possible
> > solutions for this. In the end, it might just be a suggestion in the
> > manual or improvements to error reporting.
> 
> This bug is still open. Is there something else I could do? Otherwise,
> I'd like to close it.

Thank you for the reminder. While revisiting this issue I came across
an alternate fix: adding %l to the tramp-login-args for ssh. I suspect
there is a reason this is not a viable fix, but I’m not sure what it
is. I’ve been using it locally for a while. There is a patch below, or
here is a snippet to try locally:

(setq tramp-methods (assoc-delete-all "ssh" tramp-methods #'string=))
(add-to-list 'tramp-methods
             `("ssh"
               (tramp-login-program        "ssh")
               (tramp-login-args           (("-l" "%u") ("-p" "%p") ("%c")
        			            ("-e" "none") ("%h") ("%l")))
               (tramp-async-args           (("-q")))
               (tramp-direct-async         t)
               (tramp-remote-shell         ,tramp-default-remote-shell)
               (tramp-remote-shell-login   ("-l"))
               (tramp-remote-shell-args    ("-c")))))

best, Erik

>From b20a16ae9001bf1f89ffb6767095dedef04f56b3 Mon Sep 17 00:00:00 2001
From: Erik Hetzner <[email-masked]>
Date: Wed, 16 Jun 2021 07:23:08 -0700
Subject: [PATCH] Use remote shell from the start in Tramp ssh method
 (bug#46466)

    * lisp/net/tramp-sh.el (tramp--with-startup): Add %l to
    tramp-login-args for ssh tramp-method.
---
 lisp/net/tramp-sh.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index b613ad3f8e..921af6e7c3 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -224,7 +224,7 @@ tramp-scp-strict-file-name-checking
               `("ssh"
                 (tramp-login-program        "ssh")
                 (tramp-login-args           (("-l" "%u") ("-p" "%p") ("%c")
-				             ("-e" "none") ("%h")))
+				             ("-e" "none") ("%h") ("%l")))
                 (tramp-async-args           (("-q")))
                 (tramp-direct-async         t)
                 (tramp-remote-shell         ,tramp-default-remote-shell)
-- 
2.30.2