Ssh hata mesajındaki kanal numaraları ne anlama geliyor?


12

Aşağıdaki örnekte kanal numaraları neye karşılık gelmektedir? Hangileri sunucuda? Hangisi istemcide?

  $ 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 istemcisi Windows 7 üzerinde çalışıyor ve sunucu 8899 numaralı bağlantı noktasında çalışan bir Tomcat sunucusuna sahip.

Tomcat uzaktaki makinede 127.0.0.1'de dinlemiyor, bu nedenle ssh -L1570:thehostpublicip:8899 root@thehostbağlantı noktasını ileriye doğru değiştirirsem çalışır. Bu yüzden port yönlendirme sunucu üzerinde gayet iyi çalışıyor gibi biliyorum.

sshd yapılandırma dosyam aşağıdaki iki satırı içeriyor:

# 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 için başka bir işlem için bağlantı noktası yönlendirme kurmaya çalışıyorum ve hata mesajlarının anlamını anlamaya çalıştığım için yukarıdaki şeylere benzer hata mesajları alıyorum.

Yanıtlar:


21

Gönderen SSH Protokolü belgelerine kanallarının ilişkin,:

Tüm terminal oturumları, iletilen bağlantılar vb. Kanallardır. Her iki taraf da bir kanal açabilir. Birden fazla kanal tek bir bağlantıda çoğullanır.

Kanallar her iki uçtaki sayılarla tanımlanır. Bir kanala işaret eden sayı her iki tarafta da farklı olabilir. Kanal açma istekleri, gönderenin kanal numarasını içerir. Kanalla ilgili diğer tüm mesajlar, alıcının kanal için kanal numarasını içerir.

Kanallar akış kontrollüdür. Pencere alanının kullanılabilir olduğunu belirten bir mesaj alınana kadar bir kanala veri gönderilemez.

Port yönlendirme

Sahip olduğunuz komut iyi görünüyor. Bağlanmaya çalıştığınız hizmetin çalışır durumda olduğundan ve bağlantıları kabul ettiğinden emin misiniz? Kanal hataları bunun olmadığını gösteriyor gibi görünüyor.

Aktif kanallarım nedir?

Etkin bir sshbağlantınız varsa yardım almak için aşağıdaki tuş kombinasyonunu kullanabilirsiniz:

Shift+ ~ardından 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

Daha sonra etkin kanalların bir listesini almak için bu tuş kombinasyonunu kullanabilirsiniz:

Shift+ ~ardından 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

4

Tomcat geri döngü (127.0.0.1) 'de dinlemiyorsa, oraya giden bir bağlantı noktası aldığınız hata mesajını verecektir.

Bir ssh yaparsanız, bir bağlantı noktası dinlemeyen bir bağlantı noktasına ssh -L1234:127.0.0.1:9999 10.0.0.1iletilirse (örneğin: 10.0.0.1'deki hiçbir işlem 127.0.0.1'deki 9999 bağlantı noktasına bağlı değildir), aynı hatayı alıyorum:

channel 2: open failed: administratively prohibited: open failed

-vvvSSH'nize ekleyerek hangi kanala yönlendirildiğini öğrenebilirsiniz .

ssh -vvv -L1570:127.0.0.1:8899 root@thehost

Hangi bağlantı noktasını dinleyen "diğer işlem" (ve hangi IP adreslerinde), netstat -tulpnsunucularınızdaki hangi bağlantı noktalarının ve IP'lerin işlemlerini kullandığını doğrular, -L'nin dinlediği bir adresi ve bağlantı noktasını işaret etmesi gerekir.


Yukarıdakileri çoğaltamıyorum. Bunu almak için istemci ve / veya sunucudaki ssh parametrelerini etkinleştiriyor musunuz?
slm

Hayır (standart 'kutunun dışında' her iki tarafta da yapılandırılır). Bildiğim kadarıyla connect failed: Connection refusedbir güvenlik duvarı bağlantıyı reddettiğinde elde edersiniz . administratively prohibited: open failedgüvenlik duvarı olmayan bir ana bilgisayarda.
Drav Sloan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.