6

Итак, у меня есть команда, которую я выдаю, которая по сути 'ssh'ing на разных хостах:

 command 2&>1 | grep "desired output" 

Время от времени, посреди команды, она наталкивается на хост, где у меня не настроены мои ключи. Когда это происходит, я получаю этот вывод:

 Password: 

Так как я перенаправляю STDERR в STDOUT, а затем фильтрую STDOUT, чтобы получить только "желаемый результат" (который не включает «Password:»), как мне представляется подсказка пароля?

1 ответ1

8

SSH открывает /dev /tty для чтения и записи, чтобы запросить пароль.

Я предполагаю, что это функция безопасности, вход должен быть от tty, а не от stdin.

Если вы запустите strace ssh <host> strace покажет вам системные вызовы, которые выполняет команда.

Я получил:

open("/dev/tty", O_RDWR|O_LARGEFILE)    = 4
...
write(4, "dave@host"..., 16dave's password: ) = 16
read(4,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .