題 沒有會話的SSH端口轉發


我正在嘗試將我的端口8085(一個用於迷你http服務器的實時攝像機流端口)轉發到遠程服務器。

我正在使用的命令如下:

ssh -R $rport:dc-bb7925e7:$camport -p 25 server@192.168.178.20

正如此命令現在,它確實轉發端口,我可以通過訪問localhost:8085看到遠程服務器上的實時流,但問題是客戶端上有一個TTY會話打開,阻止所有進一步的腳本從跑步。

所以我嘗試在後台使用ssh:

ssh -Nf -R $rport:dc-bb7925e7:$camport -p 25 server@192.168.178.20

這不起作用,因為好像連接已關閉。端口轉發正在腳本中使用,其中腳本評估if / then / else條件,然後執行轉發。轉發此端口不會停止所有其他腳本。它應該簡單地轉發端口,然後繼續前進,同時保持打開狀態。

我做錯了什麼或者是否有其他標誌可以使用?


4
2017-10-17 20:09


起源


你正在使用的標誌應該工作。 -N通過不在遠程主機上運行任何命令使ssh成為非交互式的,並且-f導致ssh命令在後台運行,這將允許腳本繼續運行。我已經在我的本地機器上進行了測試,它們按預期工作。你確定在運行hte腳本時沒有其他錯誤嗎? - Aner


答案:


您可以讓SSH自己處理事務,而不是為活動的TTY設置背景。

我的建議如下:

ssh -fNT -R $rport:dc-bb7925e7:$camport -p 25 server@192.168.178.20

前三個選項是:

  -f    Requests ssh to go to background just before command execution.
  -N    Do not execute a remote command.
  -T    Disable pseudo-tty allocation.

-f 選項是實際背景的東西,但是 -N 和 -T 將節省您不需要為SSH會話分配的資源,其唯一目的是承載您的隧道。

另請注意,其中一些選項可以添加到您的自定義配置文件中 ~/.ssh/config 文件,如果您認為將更多靜態配置放入靜態配置文件而不是腳本中會更好。該 RemoteForward 配置文件選項相當於 -R 命令行選項。

也可以看看: https://unix.stackexchange.com/a/46271


11
2017-10-17 22:00



-fNT不起作用。不知道為什麼,但會發生的事情是,一旦執行,攝像機不再流入其原始端口,遠程服務器也無法在轉發端口查看。 - RootWannaBe
我剛剛發現無論出於何種原因,使用上面的標誌實際上是關閉了連接。我使用了一個killall ssh命令,它響應“No Processes found” - RootWannaBe
該 -fNT選項 做 一般來說,我每天都在使用它們。我對您的特定設置知之甚少,無法解釋為什麼在ssh進程背景本身之後您的隧道可能會被關閉。您描述的調試輸出似乎不是錯誤。如果你想 更新你的問題 通過實驗的詳細結果,它可以幫助我們找到更好的答案。 - ghoti
您也許可以添加調試輸出 你的問題 (不在評論中)。也許ssh甚至沒有建立會話?太多可能被破壞的東西,沒有足夠的細節來診斷。 - ghoti
我不得不補充一下 -o ControlPersist=yes 防止連接被關閉。這是由於我的原因 ControlMaster=auto 在我的〜/ .ssh / config中 - Jon Nalley


-N 不是背景,它不是遠程命令。你想要的東西:

ssh -R $rport:dc-bb7925e7:$camport -p 25 server@192.168.178.20&

請注意尾隨的&符號,它將為命令提供背景。

您可能希望編寫一些邏輯,以便在完成後返回並關閉SSH會話。


1
2017-10-17 20:26



我已經嘗試了&。它沒有轉發任何東西 - RootWannaBe
我想你會發現“返回並關閉SSH會話的邏輯” 這裡。 - Graham


這甚至可以在mac上運行

ssh -o ControlPersist=yes -fNT -L 9022:10.0.20.1:22 root@dc1.corsoscookies.com

是的,你可以使用&,它不會在後台凍結。

Jon Nelley:我必須添加-o ControlPersist = yes以防止連接被關閉。這是因為我的〜/ .ssh / config中有ControlMaster = auto

這將是一種使用單行或bash腳本鏈接多個SSH連接和轉發的方法。


0
2017-11-09 21:59