В общем, я мог слушать в реальном времени аудио на удаленном компьютере как:
ssh me@gate rec -t mp3 - | play -
Например, на компьютере с именем gate
я мог выполнить команду rec
(или sox
), и аудиопоток передается по сети, поэтому я мог воспроизводить его в реальном времени с помощью команды play
(или sox
).
Это работает хорошо, особенно потому, что у меня есть доступ к gate
пароля из моего ноутбука (с использованием authorized_keys & authorized_keys2
).
Но моя топология:
+----+ internet +------+ lan +----------+
| my | ----------> | gate | -----> | internal |
+----+ +------+ +----------+
и мне нужно выполнить rec
во internal
компе, и его стандартный stdout
должен быть передан команде play
на my
компьютере.
Итак, когда я каскадирую (вкладываю) ssh
вроде:
ssh -t me@gate ssh me@internal rec -t mp3 -
(обратите внимание на -t
для ssh
)
- таким образом, доступ к
gate
осуществляется без пароля - на
gate
выполняется второй (вложенный)ssh
- поэтому
internal
просит у меня пароль (-t
) - и когда я ввожу пароль,
internal
правильно начинаетrec
команды - и я мог наблюдать полученный бинарный мусор на моем локальном терминале.
К сожалению, это не работает, когда я пытаюсь подключиться к play
, например, это
ssh -t me@gate ssh me@internal rec -t mp3 - | play -
не работает, потому что строка « Password:
была перенаправлена (например, я не запрашивал пароль), и play
запуталась.
Настройка доступа без пароля между me@gate
-> me@internal
вероятно, могла бы решить проблему, но я не хочу этого - я хочу вручную ввести пароль для internal
комп.
Есть идеи, как это решить?