Depois de coçar minha cabeça por semanas, eu finalmente percebi que eu poderia usar a tag -v (verbose) com ssh e obter este passo para escrever para o stderr.
Estou tentando conectar-me a uma máquina com SSH e registrar uma mensagem em um arquivo. Aqui está o meu exemplo:
ssh -i .ssh/mykey [email protected] > ~/log.txt 2> ~/err.txt
Estou recebendo a maioria das mensagens gravadas no arquivo, mas não aquelas que exigem entrada do usuário. Por exemplo, ao se conectar a uma máquina pela primeira vez, a seguinte mensagem não é registrada:
The authenticity of host 'blah.blah.blah (10.10.10.10)' can't be established.
RSA key fingerprint is
a4:d9:a4:d9:a4:d9a4:d9:a4:d9a4:d9a4:d9a4:d9a4:d9a4:d9.
Are you sure you want to continue connecting (yes/no)?
Eu sei que existem opções como esta
-o "StrictHostKeyChecking=no"
no entanto, não quero desativar esse recurso de segurança. Eu ainda quero o prompt. Meu aplicativo procurará essa mensagem, oferecerá um botão (sim / não) e poderá enviar o resultado para o stdin.
Alguma ideia de como posso colocar esta mensagem em um arquivo para leitura? E se não, por que não?