Existem alguns requisitos para que funcione:
- Você precisa definir algo (qualquer coisa serve) na variável de ambiente
DISPLAYpara ativar o recursoSSH_ASKPASS. - Você precisa do programa pinentry de
gpg-agente tty. Nos sistemas Debian / Ubuntu, executeapt-get install pinentry-cursese use/usr/bin/pinentry-curses.
Execute o script da seguinte forma:
export DISPLAY=anything
export SSH_ASKPASS="/path/to/script/calling/pass"
gpg-agent --pinentry-program /usr/bin/pinentry-curses --daemon setsid ssh myserver
Note que setsid do util-linux em distribuições recentes (Debian 8.0 ou posterior, Ubuntu 14.10 ou posterior) precisa de -w para esperar pelo término do subprocesso, caso contrário você será confundido com uma sessão ssh rodando em segundo plano .
gpg-agent --pinentry-program /usr/bin/pinentry-curses --daemon setsid -w ssh myserver