Ssh

ssh 錯誤消息中的通道號是指什麼?

  • August 9, 2013

在下面的範例中,通道號對應於什麼?伺服器上有哪些?哪些在客戶端?

 $ ssh -L1570:127.0.0.1:8899 root@thehost
   Password:
   Last login: Fri Aug  9 13:08:44 2013 from theclientip
   Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
   You have new mail.
   # channel 2: open failed: administratively prohibited: open failed
   channel 3: open failed: administratively prohibited: open failed
   channel 2: open failed: administratively prohibited: open failed

ssh 客戶端在 Windows 7 上執行,伺服器有一個 Tomcat 伺服器在埠 8899 上執行。

Tomcat 沒有在遠端機器上監聽 127.0.0.1,所以如果我將命令更改為ssh -L1570:thehostpublicip:8899 root@thehost埠轉發工作。所以我知道埠轉發在伺服器上似乎工作得很好。

我的 sshd 配置文件包含以下兩行:

# Port forwarding
AllowTcpForwarding yes

# If port forwarding is enabled, specify if the server can bind to INADDR_ANY.
# This allows the local port forwarding to work when connections are received
# from any remote host.
GatewayPorts yes

我正在嘗試為另一個程序而不是 Tomcat 設置埠轉發,並且收到類似於上述內容的錯誤消息,因此我試圖了解錯誤消息的含義。

SSH 協議文件中,關於通道:

所有終端會話、轉發連接等都是通道。任何一方都可以打開一個通道。多個通道被多路復用到一個連接中。

通道由每端的數字標識。指代頻道的數字在每一側可能不同。打開頻道的請求包含發送者的頻道號。任何其他與頻道相關的消息都包含頻道的收件人頻道號。

通道是流量控制的。在收到指示視窗空間可用的消息之前,不得將數據發送到通道。

轉發埠

您擁有的命令看起來不錯。您確定您嘗試連接的服務已啟動並接受連接嗎?通道錯誤似乎表明它不是。

我的活躍頻道是什麼?

如果您有活動ssh連接,則可以使用以下組合鍵獲取幫助:

Shift+~後跟Shift+?

$ ~?
Supported escape sequences:
 ~.  - terminate connection (and any multiplexed sessions)
 ~B  - send a BREAK to the remote system
 ~C  - open a command line
 ~R  - Request rekey (SSH protocol 2 only)
 ~^Z - suspend ssh
 ~#  - list forwarded connections
 ~&  - background ssh (when waiting for connections to terminate)
 ~?  - this message
 ~~  - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)
debug2: channel 2: written 480 to efd 8

然後,您可以使用此組合鍵來獲取活動頻道的列表:

Shift+~後跟Shift+#

$ ~#
The following connections are open:
 #2 client-session (t4 r0 i0/0 o0/0 fd 6/7 cc -1)
debug2: channel 2: written 93 to efd 8

引用自:https://unix.stackexchange.com/questions/86161