将安全隧道分配为 TTY 但在后台



要运行sudo,我需要强制使用tty,但我无法在后台分配一个,除非我说-t -t。您有机会解释一下区别是什么吗?

#fails
ssh -t host1 'sudo command' &
ssh -t host2 'sudo command' &
wait

以上失败"失败,您必须运行 tty"和

#works
ssh -t -t host1 'sudo command' &
ssh -t -t host2 'sudo command' &
wait

有效吗? 它是否意味着 TTY 中的 TTY?

ssh的手册页解释说:

-t 强制伪终端分配。 这可用于在远程机器上执行任意基于屏幕的程序,这可能非常有用,例如在实现菜单服务时。 多个-t选项强制 tty 分配,即使 ssh 没有本地 tty。

如果在后台运行命令,则本地 tty 将不会保持附加到命令,因此不会使用单个-t远程分配该命令。另一方面,使用两个-tt最终将强制分配。

最新更新