Control: retitle -1 openssh-client: Ctrl-C does not kill a ssh-add run from a script
(No issues with ssh-add is run directly from the shell, see below.) On 2023-09-22 12:18:24 +0200, Vincent Lefevre wrote: > On 2023-09-22 12:10:19 +0200, Vincent Lefevre wrote: > > On 2023-09-22 11:28:12 +0200, Vincent Lefevre wrote: > > > It seems that that ssh command runs ssh-add automatically. That's actually a ssh wrapper I use that does that. I thought that the wrapper was not involved here because it was no longer running. What happens is that the Ctrl-C seems to kill the wrapper (thus ssh and unison terminate too, returning to mutt), but not ssh-add, hence the issue. A possibly important point: I call ssh-add with several files in argument, and a Ctrl-C aborts the first passphrase, but ssh-add is still running for the other passphrases, which is bad. An example: cventin:~> unison mail -root "ssh://joooj/Mail" Unison 2.53.3 (ocaml 4.13.1): Contacting server... Enter passphrase for /home/vlefevre/.ssh/id_rsa: "ps -fu vlefevre" shows in particular: vlefevre 54481 54467 0 13:50 pts/4 00:00:00 cat vlefevre 54483 54467 0 13:50 pts/4 00:00:00 ssh-add /home/vlefevre/.ssh/id_rsa /home/vlefevre/.ssh/id_rsa-and (the long line is truncated). Now I type Ctrl-C, which gives: Enter passphrase for /home/vlefevre/.ssh/id_rsa: Terminated! cventin:~[3]> <13:50:24 and "ps -fu vlefevre": vlefevre 54481 1 0 13:50 pts/4 00:00:00 cat vlefevre 54483 1 0 13:50 pts/4 00:00:00 ssh-add /home/vlefevre/.ssh/id_rsa /home/vlefevre/.ssh/id_rsa-and These processes are now attached to pid 1, with still pts/4 as the associated terminal. If I type any character, ssh-add receives the key as the following is output: Enter passphrase for /home/vlefevre/.ssh/id_rsa-android: Enter passphrase for /home/vlefevre/.ssh/id_rsa-cfarm: [...] and ssh-add terminates. But when unison is run from Mutt, this is worse, as ssh-add doesn't terminate on receiving a key. So it seems that ssh-add incorrectly handles signals. Note that if I run ssh-add with several files directly from the shell, there are no issues: ssh-add is killed as expected, without printing anything about the other files. [...] > But a "kill -QUIT 2358" killed it: [...] However, the terminal got in a broken state and mutt was no longer receiving any key. -- Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)