Existem alguns requisitos para que funcione:
- Você precisa definir algo (qualquer coisa serve) na variável de ambiente
DISPLAY
para ativar o recursoSSH_ASKPASS
. - Você precisa do programa pinentry de
gpg-agent
e tty. Nos sistemas Debian / Ubuntu, executeapt-get install pinentry-curses
e 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