Ssh
ssh 錯誤消息中的通道號是指什麼?
在下面的範例中,通道號對應於什麼?伺服器上有哪些?哪些在客戶端?
$ 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