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ó 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:
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 $PROXYHOST
có 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 -N
và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 $REMOTEHOST
cổng SSH.
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
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 -t
cờ để 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
Bạn có thể chuyển tiếp kết nối tự động bằng OpenSSH. Trong ~/.ssh/authorized_keys
tệ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ỉ.