man ssh
说:
-t 强制伪 tty 分配。这可用于在远程机器上执行任意基于屏幕的程序,这非常有用,例如在实现菜单服务时。多个 -t 选项强制分配 tty,即使 ssh 没有本地 tty。
https://explainshell.com/explain?cmd=ssh+-tt
多个 -t 选项强制分配 tty,即使 ssh 没有本地 tty。
这具体是什么意思?如果系统上没有shell,ssh会自己创建吗?-tt 失败会发生什么?
man ssh
说:
-t 强制伪 tty 分配。这可用于在远程机器上执行任意基于屏幕的程序,这非常有用,例如在实现菜单服务时。多个 -t 选项强制分配 tty,即使 ssh 没有本地 tty。
https://explainshell.com/explain?cmd=ssh+-tt
多个 -t 选项强制分配 tty,即使 ssh 没有本地 tty。
这具体是什么意思?如果系统上没有shell,ssh会自己创建吗?-tt 失败会发生什么?
如果你这样做:
您将收到一条消息:
Pseudo-terminal will not be allocated because stdin is not a terminal.
在这种情况下,stdin 提供的是 ssh,而不是您的本地 shell/tty。使用
-tt
将告诉它分配不管。这是一个用例,我敢肯定还有其他案例可以应用于此,但 stdin 是最明显的案例之一。没有 ssh 的本地 tty 并不表示本地 shell 不存在。上面的例子展示了使用标准输入流到 ssh。
这意味着无论本地连接如何,它都会强制分配 tty。见上面的例子。