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
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature