Ssh

-t 和 -tt ssh 的區別

  • October 25, 2022

man ssh說:

-t 強制偽 tty 分配。這可用於在遠端機器上執行任意基於螢幕的程序,這非常有用,例如在實現菜單服務時。多個 -t 選項強制分配 tty,即使 ssh 沒有本地 tty。

https://explainshell.com/explain?cmd=ssh+-tt

多個 -t 選項強制分配 tty,即使 ssh 沒有本地 tty。

這具體是什麼意思?如果系統上沒有shell,ssh會自己創建嗎?-tt 失敗會發生什麼?

如果你這樣做:

ssh -t user@server<<EOT
echo test
EOT

您將收到一條消息:Pseudo-terminal will not be allocated because stdin is not a terminal.在這種情況下,stdin 提供的是 ssh,而不是您的本地 shell/tty。

使用-tt將告訴它分配不管。這是一個案例,我敢肯定還有其他案例可以應用於此,但 stdin 是最明顯的案例之一。


如果系統上沒有shell,ssh會自己創建嗎?

沒有 ssh 的本地 tty 並不表示本地 shell 不存在。上面的例子展示了使用標準輸入流到 ssh。

這具體是什麼意思?

這意味著無論本地連接如何,它都會強制分配 tty。見上面的例子。

引用自:https://serverfault.com/questions/1113915