A por ssh
manual:
If
ssh
does not have a terminal associated with it but DISPLAY and SSH_ASKPASS are set, it will execute the program specified by SSH_ASKPASS.
Portanto, você precisa desassociar o terminal (por exemplo, adicionando um canal) e certificar-se de que DISPLAY
não esteja definido (se você quiser usar o terminal para sua frase secreta).
Exemplo simples:
echo foo | SSH_ASKPASS=/my/cmd DISPLAY= ssh ...
O mesmo com ssh-add
:
$ echo foo | SSH_ASKPASS=/my/cmd DISPLAY= ssh-add id_rsa
ssh_askpass: exec(/my/cmd): No such file or directory