要运行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
最终将强制分配。