"Tramp failed to connect" to an ssh server (gpg as an ssh agent)

Daniel Krajnik <[email protected]>
Newsgroups gmane.emacs.tramp
Message-ID <[email protected]>
Hi


I'm wondering if anyone is able to use Tramp with a gpg smart card or a 
gpg agent that manages the ssh socket (so acts as an ssh agent)?

For me it fails with |file-error "Tramp failed to connect. If this 
happens repeatedly, try\n ‘M-x tramp-cleanup-this-connection’"))"|

I tried |tramp-cleanup-this-connection|, but no, that didn't help.

Tramp seems to work locally - I am able to "sudo-this-file" and enter 
pin to unlock sudo (it's managed by the smart card U2F pam module).

Any suggestions how to approach debugging this would be very welcome.


Debugger:

|Debugger entered--Lisp error: (file-error "Tramp failed to connect. If 
this happens repeated...") apply(debug error (file-error "Tramp failed 
to connect. If this happens repeated...")) edebug(error (file-error 
"Tramp failed to connect. If this happens repeated...")) 
signal(file-error ("Tramp failed to connect. If this happens 
repeated...")) tramp-error(nil file-error "Tramp failed to connect. If 
this happens repeated...") tramp-signal-hook-function(file-error ("Tramp 
failed to connect. If this happens repeated...")) signal(file-error 
("Tramp failed to connect. If this happens repeated...")) (edebug-after 
(edebug-before 478) 485 (signal (edebug-after (edebug-before 479) 481 
(car (edebug-after 0 480 err))) (edebug-after (edebug-before 482) 484 
(cdr (edebug-after 0 483 err))))) (condition-case err (edebug-after 
(edebug-before 97) 474 (if (edebug-after (edebug-before 98) 100 
(process-live-p (edebug-after 0 99 p))) nil (edebug-after (edebug-before 
101) 473 (if (or noninteractive inhibit-message) (progn (edebug-after 
(edebug-before 133) 472 (catch ... ... ... ... ... ... ... ... ...))) 
(tramp-message (edebug-after 0 102 vec) 3 "%s..." (edebug-after 
(edebug-before 103) 132 (if ... ... ...))) (let ((cookie "failed") (tm 
...)) (unwind-protect (prog1 ... ...) (if tm ...) (tramp-message ... 3 
"%s...%s" ... cookie))))))) ((error quit) (edebug-after (edebug-before 
475) 477 (tramp-cleanup-connection (edebug-after 0 476 vec) t)) 
(edebug-after (edebug-before 478) 485 (signal (edebug-after 
(edebug-before 479) 481 (car (edebug-after 0 480 err))) (edebug-after 
(edebug-before 482) 484 (cdr (edebug-after 0 483 err))))))) 
(edebug-after (edebug-before 96) 486 (condition-case err (edebug-after 
(edebug-before 97) 474 (if (edebug-after (edebug-before 98) 100 
(process-live-p (edebug-after 0 99 p))) nil (edebug-after (edebug-before 
101) 473 (if (or noninteractive inhibit-message) (progn (edebug-after 
... 472 ...)) (tramp-message (edebug-after 0 102 vec) 3 "%s..." 
(edebug-after ... 132 ...)) (let (... ...) (unwind-protect ... ... 
...)))))) ((error quit) (edebug-after (edebug-before 475) 477 
(tramp-cleanup-connection (edebug-after 0 476 vec) t)) (edebug-after 
(edebug-before 478) 485 (signal (edebug-after (edebug-before 479) 481 
(car (edebug-after 0 480 err))) (edebug-after (edebug-before 482) 484 
(cdr (edebug-after 0 483 err)))))))) (let ((p (edebug-after 
(edebug-before 8) 10 (tramp-get-connection-process (edebug-after 0 9 
vec)))) (process-name (edebug-after (edebug-before 11) 13 
(tramp-get-connection-property (edebug-after 0 12 vec) "process-name"))) 
(process-environment (edebug-after (edebug-before 14) 16 (copy-sequence 
(edebug-after 0 15 process-environment)))) (pos (edebug-after 
(edebug-before 17) 23 (save-current-buffer (set-buffer (edebug-after 
(edebug-before 18) 20 (tramp-get-connection-buffer ...))) (edebug-after 
(edebug-before 21) 22 (point)))))) (edebug-after (edebug-before 24) 58 
(if (edebug-after (edebug-before 25) 55 (or (edebug-after (edebug-before 
26) 28 (process-live-p (edebug-after 0 27 p))) (edebug-after 
(edebug-before 29) 36 (and (edebug-after ... 32 ...) (edebug-after ... 
35 ...))) (edebug-after (edebug-before 37) 44 (not (edebug-after ... 43 
...))) (edebug-after (edebug-before 45) 54 (time-less-p (edebug-after 
... 50 ...) (edebug-after ... 53 ...))))) nil (edebug-after 
(edebug-before 56) 57 (throw 'suppress 'suppress)))) (edebug-after 
(edebug-before 59) 95 (condition-case nil (edebug-after (edebug-before 
60) 89 (if (edebug-after (edebug-before 61) 72 (and (edebug-after ... 68 
...) (edebug-after ... 71 ...))) (progn (edebug-after (edebug-before 73) 
75 (tramp-send-command ... "echo are you awake" t t)) (edebug-after 
(edebug-before 76) 88 (if ... nil ...))))) (file-error (edebug-after 
(edebug-before 90) 92 (tramp-cleanup-connection (edebug-after 0 91 vec) 
t)) (edebug-after (edebug-before 93) 94 (setq p nil))))) (edebug-after 
(edebug-before 96) 486 (condition-case err (edebug-after (edebug-before 
97) 474 (if (edebug-after (edebug-before 98) 100 (process-live-p 
(edebug-after 0 99 p))) nil (edebug-after (edebug-before 101) 473 (if 
(or noninteractive inhibit-message) (progn ...) (tramp-message ... 3 
"%s..." ...) (let ... ...))))) ((error quit) (edebug-after 
(edebug-before 475) 477 (tramp-cleanup-connection (edebug-after 0 476 
vec) t)) (edebug-after (edebug-before 478) 485 (signal (edebug-after 
(edebug-before 479) 481 (car ...)) (edebug-after (edebug-before 482) 484 
(cdr ...)))))))) (edebug-after (edebug-before 7) 487 (let ((p 
(edebug-after (edebug-before 8) 10 (tramp-get-connection-process 
(edebug-after 0 9 vec)))) (process-name (edebug-after (edebug-before 11) 
13 (tramp-get-connection-property (edebug-after 0 12 vec) 
"process-name"))) (process-environment (edebug-after (edebug-before 14) 
16 (copy-sequence (edebug-after 0 15 process-environment)))) (pos 
(edebug-after (edebug-before 17) 23 (save-current-buffer (set-buffer 
(edebug-after ... 20 ...)) (edebug-after (edebug-before 21) 22 
(point)))))) (edebug-after (edebug-before 24) 58 (if (edebug-after 
(edebug-before 25) 55 (or (edebug-after (edebug-before 26) 28 
(process-live-p ...)) (edebug-after (edebug-before 29) 36 (and ... ...)) 
(edebug-after (edebug-before 37) 44 (not ...)) (edebug-after 
(edebug-before 45) 54 (time-less-p ... ...)))) nil (edebug-after 
(edebug-before 56) 57 (throw 'suppress 'suppress)))) (edebug-after 
(edebug-before 59) 95 (condition-case nil (edebug-after (edebug-before 
60) 89 (if (edebug-after (edebug-before 61) 72 (and ... ...)) (progn 
(edebug-after ... 75 ...) (edebug-after ... 88 ...)))) (file-error 
(edebug-after (edebug-before 90) 92 (tramp-cleanup-connection 
(edebug-after 0 91 vec) t)) (edebug-after (edebug-before 93) 94 (setq p 
nil))))) (edebug-after (edebug-before 96) 486 (condition-case err 
(edebug-after (edebug-before 97) 474 (if (edebug-after (edebug-before 
98) 100 (process-live-p ...)) nil (edebug-after (edebug-before 101) 473 
(if ... ... ... ...)))) ((error quit) (edebug-after (edebug-before 475) 
477 (tramp-cleanup-connection (edebug-after 0 476 vec) t)) (edebug-after 
(edebug-before 478) 485 (signal (edebug-after ... 481 ...) (edebug-after 
... 484 ...)))))))) (closure ((vec tramp-file-name "ssh" nil nil 
"128.40.123.56" "48273" "" nil)) nil (edebug-after (edebug-before 0) 6 
(if (edebug-after (edebug-before 1) 3 (tramp-connectable-p (edebug-after 
0 2 vec))) nil (edebug-after (edebug-before 4) 5 (throw 'non-essential 
'non-essential)))) (edebug-after (edebug-before 7) 487 (let ((p 
(edebug-after (edebug-before 8) 10 (tramp-get-connection-process 
(edebug-after 0 9 vec)))) (process-name (edebug-after (edebug-before 11) 
13 (tramp-get-connection-property (edebug-after 0 12 vec) 
"process-name"))) (process-environment (edebug-after (edebug-before 14) 
16 (copy-sequence (edebug-after 0 15 process-environment)))) (pos 
(edebug-after (edebug-before 17) 23 (save-current-buffer (set-buffer 
...) (edebug-after ... 22 ...))))) (edebug-after (edebug-before 24) 58 
(if (edebug-after (edebug-before 25) 55 (or (edebug-after ... 28 ...) 
(edebug-after ... 36 ...) (edebug-after ... 44 ...) (edebug-after ... 54 
...))) nil (edebug-after (edebug-before 56) 57 (throw 'suppress 
'suppress)))) (edebug-after (edebug-before 59) 95 (condition-case nil 
(edebug-after (edebug-before 60) 89 (if (edebug-after ... 72 ...) (progn 
... ...))) (file-error (edebug-after (edebug-before 90) 92 
(tramp-cleanup-connection ... t)) (edebug-after (edebug-before 93) 94 
(setq p nil))))) (edebug-after (edebug-before 96) 486 (condition-case 
err (edebug-after (edebug-before 97) 474 (if (edebug-after ... 100 ...) 
nil (edebug-after ... 473 ...))) ((error quit) (edebug-after 
(edebug-before 475) 477 (tramp-cleanup-connection ... t)) (edebug-after 
(edebug-before 478) 485 (signal ... ...))))))))() 
edebug-default-enter(tramp-maybe-open-connection ((tramp-file-name "ssh" 
nil nil "128.40.123.56" "48273" "" nil)) (closure ((vec tramp-file-name 
"ssh" nil nil "128.40.123.56" "48273" "" nil)) nil (edebug-after 
(edebug-before 0) 6 (if (edebug-after (edebug-before 1) 3 
(tramp-connectable-p (edebug-after 0 2 vec))) nil (edebug-after 
(edebug-before 4) 5 (throw 'non-essential 'non-essential)))) 
(edebug-after (edebug-before 7) 487 (let ((p (edebug-after 
(edebug-before 8) 10 (tramp-get-connection-process ...))) (process-name 
(edebug-after (edebug-before 11) 13 (tramp-get-connection-property ... 
"process-name"))) (process-environment (edebug-after (edebug-before 14) 
16 (copy-sequence ...))) (pos (edebug-after (edebug-before 17) 23 
(save-current-buffer ... ...)))) (edebug-after (edebug-before 24) 58 (if 
(edebug-after (edebug-before 25) 55 (or ... ... ... ...)) nil 
(edebug-after (edebug-before 56) 57 (throw ... ...)))) (edebug-after 
(edebug-before 59) 95 (condition-case nil (edebug-after (edebug-before 
60) 89 (if ... ...)) (file-error (edebug-after ... 92 ...) (edebug-after 
... 94 ...)))) (edebug-after (edebug-before 96) 486 (condition-case err 
(edebug-after (edebug-before 97) 474 (if ... nil ...)) ((error quit) 
(edebug-after ... 477 ...) (edebug-after ... 485 ...)))))))) 
edebug-enter(tramp-maybe-open-connection ((tramp-file-name "ssh" nil nil 
"128.40.123.56" "48273" "" nil)) (closure ((vec tramp-file-name "ssh" 
nil nil "128.40.123.56" "48273" "" nil)) nil (edebug-after 
(edebug-before 0) 6 (if (edebug-after (edebug-before 1) 3 
(tramp-connectable-p (edebug-after 0 2 vec))) nil (edebug-after 
(edebug-before 4) 5 (throw 'non-essential 'non-essential)))) 
(edebug-after (edebug-before 7) 487 (let ((p (edebug-after 
(edebug-before 8) 10 (tramp-get-connection-process ...))) (process-name 
(edebug-after (edebug-before 11) 13 (tramp-get-connection-property ... 
"process-name"))) (process-environment (edebug-after (edebug-before 14) 
16 (copy-sequence ...))) (pos (edebug-after (edebug-before 17) 23 
(save-current-buffer ... ...)))) (edebug-after (edebug-before 24) 58 (if 
(edebug-after (edebug-before 25) 55 (or ... ... ... ...)) nil 
(edebug-after (edebug-before 56) 57 (throw ... ...)))) (edebug-after 
(edebug-before 59) 95 (condition-case nil (edebug-after (edebug-before 
60) 89 (if ... ...)) (file-error (edebug-after ... 92 ...) (edebug-after 
... 94 ...)))) (edebug-after (edebug-before 96) 486 (condition-case err 
(edebug-after (edebug-before 97) 474 (if ... nil ...)) ((error quit) 
(edebug-after ... 477 ...) (edebug-after ... 485 ...)))))))) 
tramp-maybe-open-connection((tramp-file-name "ssh" nil nil 
"128.40.123.56" "48273" "" nil)) tramp-send-command((tramp-file-name 
"ssh" nil nil "128.40.123.56" "48273" "" nil) "echo ~ 2>/dev/null; echo 
tramp_exit_status $?") tramp-send-command-and-check((tramp-file-name 
"ssh" nil nil "128.40.123.56" "48273" "" nil) "echo ~") 
tramp-sh-handle-get-home-directory((tramp-file-name "ssh" nil nil 
"128.40.123.56" "48273" "" nil) "") 
apply(tramp-sh-handle-get-home-directory ((tramp-file-name "ssh" nil nil 
"128.40.123.56" "48273" "" nil) "")) 
tramp-sh-file-name-handler(tramp-get-home-directory (tramp-file-name 
"ssh" nil nil "128.40.123.56" "48273" "" nil) "") 
apply(tramp-sh-file-name-handler tramp-get-home-directory 
((tramp-file-name "ssh" nil nil "128.40.123.56" "48273" "" nil) "")) 
(edebug-after (edebug-before 68) 72 (apply (edebug-after 0 69 foreign) 
(edebug-after 0 70 operation) (edebug-after 0 71 args))) (catch 
'suppress (edebug-after (edebug-before 68) 72 (apply (edebug-after 0 69 
foreign) (edebug-after 0 70 operation) (edebug-after 0 71 args)))) ...|

Best wishes,

Daniel
OpenPGP_0xCFC60FFCAAEC3A7D.asc (application/pgp-keys, 1.3 KB)
-----BEGIN PGP PUBLIC KEY BLOCK-----

xjMEZEwmuBYJKwYBBAHaRw8BAQdAUSPhBHvM5HVLqdnnA8UFqDYIWHxw1HlnUD4d
vvKhXFjNJkRhbmllbCBLcmFqbmlrIDxrcmFqbmlrLmRhbkBnbWFpbC5jb20+wpAE
ExYIADgWIQROikqEcL7GbFTtzbDPxg/8quw6fQUCZEwmuAIbAQULCQgHAgYVCgkI
CwIEFgIDAQIeAQIXgAAKCRDPxg/8quw6fUtVAP9He/b8gOLZa/tmVHIwU3sqJv9m
A95Wu8+DckHwPiPmngD9HIhe8IDS/CILzYKnLU05SoR7c8nXSY1JAnJp057uQAfO
MwRkTChFFgkrBgEEAdpHDwEBB0B3G+ZMHI5hXPw/ixIhVCGnb41SQF+flGXB8mnD
mVA+RMLANQQYFggAJhYhBE6KSoRwvsZsVO3NsM/GD/yq7Dp9BQJkTChFAhsCBQkB
4TOAAIEJEM/GD/yq7Dp9diAEGRYIAB0WIQQUEHvti7oyCbklIY8cJKqm/xtZBAUC
ZEwoRQAKCRAcJKqm/xtZBHStAQCeRXVN9X7BJmcjxEDe4cXP7pkHpidjjX4mr3TO
MJDZOQEAgmNhLJVjEREIQwyhw4Ws7VwWUaIyFPN1N/g0QtRGvAxkCQD5AVNx+V07
oTpOwdIZ/L4V+jK1c8VQaIA04ddLOMCyOC0BAOfb2WXu6iWxlrDqEoSgc8pC4tYq
lU7jO5VV7xQc7IoMzjgEZEwo3hIKKwYBBAGXVQEFAQEHQGOa8m4s8shclIl5F8SF
DN+2xg+vW1PZAqyo8nV8s7dPAwEIB8J+BBgWCAAmFiEETopKhHC+xmxU7c2wz8YP
/KrsOn0FAmRMKN4CGwwFCQHhM4AACgkQz8YP/KrsOn3fHAD+NqIqRUMm6Jxar0ck
KvBnhYWp+jBNLc71oZF4TJAsdhIA/RVutRg7GVFhAWl1om2cu2aZlAXBp6lWzUTg
+xEU7ZQNzjMEZEwpbxYJKwYBBAHaRw8BAQdAnmF552EV6XsamdaD7XNJiv0P071X
K5kaJxXwPRBaOFnCfgQYFggAJhYhBE6KSoRwvsZsVO3NsM/GD/yq7Dp9BQJkTClv
AhsgBQkB4TOAAAoJEM/GD/yq7Dp9C4oA/RIgCO4Sul8MRKIRzzP1TheByb6lEwqM
OFh7JvFwhuDBAP9b5uqNaYGN1Wik4XjguXFcICVrWf/NwcPpShPqoSpxAQ==
=UtN6
-----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature.asc (application/pgp-signature, 228 B)
-----BEGIN PGP SIGNATURE-----

iHUEARYIAB0WIQQUEHvti7oyCbklIY8cJKqm/xtZBAUCZPoKkQAKCRAcJKqm/xtZ
BHbbAQD7HwircE26zRrBZWrorDg9+UL2PxpfGumujucppmNqAwD/bOhQ0bXnyoqG
jfQZhKG40D+WRls2/2y2TSGdPqlM/Q8=
=O0fK
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.