Máy chủ chuyển tiếp SSH với OpenSSH


10

Có thể sử dụng OpenSSH để chuyển tiếp đến các thiết bị hỗ trợ SSH khác như bộ chuyển mạch bộ định tuyến, vv .. Nếu đây là điều có thể được thực hiện mà không cần tạo ứng dụng bespoke trên Linux để làm điều đó?

Cảm ơn

Câu trả lời:


9

Chắc chắn rồi; chỉ cần sử dụng chuyển tiếp / đường hầm cổng SSH. Bắt đầu kết nối ssh với máy "proxy" bằng lệnh sau:

ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
  • $PROXYHOST: máy bạn đã truy cập SSH vào
  • $REMOTEHOST: máy mà $ PROXYHOST có thể kết nối, nhưng bạn không thể. Sử dụng tên máy chủ hoặc IP $PROXYHOSTcó thể sử dụng để tham khảo máy
  • $SSHPORT: cổng mà sshd đang nghe trên remotehost; nhiều khả năng 22
  • $LOCALPORT: cổng ra bên ngoài SSH đang mở trên máy cục bộ của bạn chuyển tiếp sang cổng 22 trên $REMOTEHOST

Để kết nối đó lên để giữ cho đường hầm hoạt động. Bạn cũng có thể muốn thêm -Nvào lệnh để kết nối này không hiển thị vỏ từ xa và bạn sẽ không vô tình đóng nó sau.

Khi đường hầm được thiết lập, hãy làm như sau:

ssh -p $LOCALPORT localhost

Điều này cố gắng kết nối SSH đến máy cục bộ của bạn trên cổng được chuyển tiếp đến $REMOTEHOSTcổng SSH.


3

Nếu bạn sẵn sàng cập nhật cấu hình trên máy khách của mình, bạn có thể thiết lập máy khách của mình để sử dụng hộp cổng làm proxy . Hộp chuyển tiếp của bạn sẽ cần cài đặt netcat và để có kết quả tốt nhất, bạn sẽ muốn thiết lập xác thực dựa trên khóa.

Đây là những gì tôi sử dụng trong .ssh / config của mình để kết nối thông qua một máy chủ khác.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host "/bin/netcat -w 1 internal-ssh-host 22"

Với cách trên, bạn có thể chỉ cần chạy lệnh ssh Internal-ssh-host-proxy từ máy khách của bạn.

Nếu máy chủ SSH proxy có máy khách OpenSSH 5.4 trở lên, bạn không cần netcat và thay vào đó bạn có thể sử dụng chế độ netcat tích hợp.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22

Xin lỗi nhưng đây không phải là sử dụng OpenSSH bạn đang sử dụng netcat để thực hiện chuyển tiếp giữa máy chủ và máy chủ?
aHunter

Nó đang sử dụng OpenSSH kết hợp với một tiện ích rất phổ biến có sẵn ở hầu hết mọi nơi. Nó không phải là ssh thuần túy, nhưng tôi sẽ không gọi nó là bespoken.
Zoredache

Không, tôi đồng ý rằng nó không phải là bespoke nhưng tôi muốn biết liệu có thể chuyển tiếp bằng OpenSSH để bạn sử dụng máy khách ssh tiêu chuẩn và ssh vào hộp chạy OpenSSH sau đó tự động cung cấp quyền truy cập ssh vào máy khác hoặc nhiều máy. Cảm ơn
aHunter

1
@aHunter, đối với bản ghi hiện có 'chế độ netcat' được tích hợp vào openssh 5.4, cung cấp kết nối openssh thuần túy - blog.rootshell.be/2010/03/08/openssh-new-feature-netcat-mode không có công cụ bên ngoài được cần.
Zoredache

3

Trong số các câu trả lời được trình bày, Zordache là giải pháp tổng thể tốt nhất. Tuy nhiên, đối với hậu thế, nếu bạn chỉ muốn kết nối ad-hoc mà không cần chỉnh sửa cấu hình của mình, hãy sử dụng -tcờ để phân bổ thiết bị đầu cuối giả cùng với thực thi ssh trực tiếp trên rơle.

ssh -t relay.example.com ssh internal.example.com

giải pháp đơn giản nhất mà không cần chỉnh sửa tập tin
Kartoch

2

Bạn có thể chuyển tiếp kết nối tự động bằng OpenSSH. Trong ~/.ssh/authorized_keystệp của bạn , bạn có thể chỉ định một lệnh để thực thi, có thể là SSH tới máy thứ hai.

[ssh client] ----> [ssh relay server] ----> [ssh target server]
    you          modified authorized_keys      target machine

Những gì bạn sẽ thấy là hai lời nhắc cho Password:: một cho máy chủ chuyển tiếp và một cho máy chủ đích. Bạn luôn có thể loại bỏ hành vi này bằng cách sử dụng chứng chỉ.


Nghe có vẻ hoàn hảo như thế nào bạn sẽ cấu hình sshd trong openssh?
aHunter

Tham khảo phần trên [Buộc Commands] [1] tại [1] eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html
sybreon

đây là một ý tưởng tuyệt vời Điều cuối cùng tôi muốn làm là mở 100 cổng riêng biệt trong tường lửa của mình bằng các tuyến đường. Sau đó lặp lại cho dự phòng. Điều này cho thấy tôi có thể tạo 100 khóa ssh và liên kết từng khóa với máy chủ của chính nó. Điều này cũng gợi ý rằng tôi hoàn toàn có thể khóa máy chủ chuyển tiếp. Một số người có thể gọi đây là VPN nhưng tôi thấy nó khác.
Richard
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.