一般来说,我可以在远程计算机上实时监听音频:
ssh me@gate rec -t mp3 - | play -
例如,在名为gateI 的计算机上,我可以执行命令rec(或sox),音频流通过网络传输,因此我可以通过play(或sox)命令实时重播。
这样可以正常工作,特别是因为我无需密码访问gate我的笔记本(使用authorized_keys & authorized_keys2)。
但我的拓扑结构是:
+----+ internet +------+ lan +----------+
| my | ----------> | gate | -----> | internal |
+----+ +------+ +----------+
我需要rec在internalcomp中执行它,它stdout应该通过管道输出到计算机中的play命令my。
所以,当我级联(嵌套)sshs时:
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可能可以解决问题,但我不想这样 - 我想手动输入密码到internalcomp。
不知道怎么解决这个问题?
旁注:我想你可能有知识回答这个老问题。
—
Kamil Maciorowski
-t没有要求密码...“ 禁用伪终端分配。 ”