Ssh

如何從我的桌面在遠端伺服器上通過 ssh 命令啟動螢幕會話?

  • December 1, 2011

我希望能夠通過桌面上的單個 ssh 命令在遠端伺服器上啟動螢幕會話。但是 screen 似乎需要一個終端,通過 ssh 執行命令時該終端不可用。

所以很明顯

ssh root@my.machine screen "tail -f /var/log/messages"

(例如)不起作用,並給出

Must be connected to a terminal.

我希望 ssh 在螢幕下啟動命令,以便稍後登錄並附加到手動啟動的螢幕會話中。

嘗試使用 -t 選項來 ssh

ssh -t root@my.machine screen "tail -f /var/log/messages"

從人 ssh

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

您可以使用:

ssh root@host screen -m -d "tail -f /var/log/messages"

這將啟動一個分離的螢幕,並在其上執行一個命令。

  -m   causes screen  to  ignore  the  $STY  environment  variable.  With
       "screen  -m"  creation  of  a  new session is enforced, regardless
       whether screen is called from within  another  screen  session  or
       not.  This  flag has a special meaning in connection with the `-d'
       option:

  -d -m   Start screen in "detached" mode. This creates a new session but
          doesn't  attach  to  it.  This  is  useful  for  system startup
          scripts.

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