Số kênh trong thông báo lỗi ssh đề cập đến điều gì?


12

Trong ví dụ dưới đây, số kênh tương ứng với cái gì? Đó là trên máy chủ? Đó là trên khách hàng?

  $ 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

Máy khách ssh đang chạy trên Windows 7 và máy chủ có máy chủ Tomcat chạy trên cổng 8899.

Tomcat không nghe trên 127.0.0.1 trên máy từ xa nên nếu tôi thay đổi lệnh để ssh -L1570:thehostpublicip:8899 root@thehostcổng chuyển tiếp hoạt động. Vì vậy, tôi biết rằng chuyển tiếp cổng dường như chỉ hoạt động tốt trên máy chủ.

tập tin cấu hình sshd của tôi chứa hai dòng sau:

# 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

Tôi đang cố gắng thiết lập chuyển tiếp cổng cho một quy trình khác không phải Tomcat và tôi nhận được các thông báo lỗi tương tự như nội dung bên trên vì vậy tôi đang cố gắng hiểu ý nghĩa của các thông báo lỗi.

Câu trả lời:


21

Từ tài liệu Giao thức SSH , liên quan đến các kênh:

Tất cả các phiên cuối, kết nối chuyển tiếp, vv, là các kênh. Một trong hai bên có thể mở một kênh. Nhiều kênh được ghép thành một kết nối duy nhất.

Các kênh được xác định bởi các số ở mỗi đầu. Số lượng đề cập đến một kênh có thể khác nhau ở mỗi bên. Yêu cầu mở kênh chứa số kênh của người gửi. Bất kỳ tin nhắn liên quan đến kênh nào khác đều chứa số kênh của người nhận cho kênh.

Các kênh được kiểm soát dòng chảy. Không có dữ liệu có thể được gửi đến một kênh cho đến khi nhận được tin nhắn cho biết không gian cửa sổ có sẵn.

Cổng chuyển tiếp

Lệnh bạn có vẻ ổn. Bạn có chắc chắn rằng dịch vụ bạn đang cố gắng kết nối đang hoạt động và chấp nhận kết nối không? Các lỗi kênh dường như chỉ ra rằng nó không phải.

Các kênh hoạt động của tôi là gì?

Nếu bạn có sshkết nối hoạt động, bạn có thể sử dụng tổ hợp phím sau để nhận trợ giúp:

Shift+ ~theo sau là 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

Sau đó, bạn có thể sử dụng tổ hợp phím này để nhận danh sách các kênh đang hoạt động:

Shift+ ~theo sau là 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

Nếu tomcat không nghe trên loopback (127.0.0.1) thì một cổng chuyển tiếp tới đó sẽ đưa ra thông báo lỗi mà bạn đã nhận được.

Nếu tôi thực hiện một ssh, với một cổng chuyển tiếp đến một cổng không nghe (ví dụ: ssh -L1234:127.0.0.1:9999 10.0.0.1- trong đó không có quá trình nào trên 10.0.0.1 bị ràng buộc với cổng 9999 trên 127.0.0.1), tôi cũng gặp lỗi tương tự:

channel 2: open failed: administratively prohibited: open failed

Bạn có thể tìm hiểu kênh nào đang được đề cập bằng cách thêm -vvvvào ssh của bạn

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

Cổng nào là "quá trình khác" lắng nghe (và trên địa chỉ IP nào), netstat -tulpnsẽ xác nhận các cổng và quá trình IP nào trên máy chủ của bạn đang sử dụng, -L sẽ phải trỏ đến một địa chỉ và cổng mà nó đang nghe.


Tôi không thể sao chép ở trên. Bạn có đang bật tham số ssh trong máy khách và / hoặc máy chủ để nhận thông tin này không?
slm

Không (cấu hình 'ngoài hộp' tiêu chuẩn ở cả hai bên). Theo như tôi có thể làm việc bạn nhận được connect failed: Connection refusedkhi tường lửa từ chối kết nối. administratively prohibited: open failedlà trên một máy chủ không có tường lửa.
Drav Sloan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.