SSH đường hầm thông qua máy chủ trung gian - làm thế nào để kết nối trong một bước (sử dụng cặp khóa)?


9

Câu hỏi của tôi về cơ bản là làm thế nào để biến hai bước hiện tại của tôi thành một bước.

Tôi có một đường hầm SSH hoạt động được thiết lập giữa hai máy tính bằng máy chủ trung gian như thế này:

Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop

Những gì tôi làm hiện tại là SSH từ Kubfox_l mỏi sang Debian_Server và sau đó từ Debian_Server sang Kubfox_desktop. Tôi muốn thực hiện một lệnh SSH đó, được ban hành trên Kubfox_l mỏi của tôi trong bash dẫn đến việc tôi được kết nối với Kubfox_desktop (shell / bash).

Các lệnh tôi đang sử dụng bây giờ như sau. Bước 1:

me@kubuntu_laptop:~$ ssh -i ~/.ssh/id_rsa admin@debian_server  

Bước 2:

admin@debian_server:$ ssh -p 1234 -i /home/admin/.ssh/id_rsa admin@localhost 

Sau đó, tôi được kết nối với kubfox_desktop thông qua SSH (từ kubfox_l mỏi).

Khóa RSA là bắt buộc cho tất cả các kết nối SSH. Mật khẩu đăng nhập bị vô hiệu hóa tất cả các cách xung quanh. Và lưu ý rằng tài khoản người dùng máy tính khác nhau ở hai trong số các máy tính.

Về kết nối cho chặng này:

Debian_Server<--nat_fw<--Kubuntu_desktop

Đây là cách nó được thành lập:

autossh -M 5234 -N -f -R 1234:localhost:22 user@mydebian.com -p 22

Lưu ý Kubfox_desktop kết nối với người trung gian là user@mydebian.com (không phải admin @ debian_server). Nhưng khi tôi kết nối với Kubfox_desktop, tôi kết nối với tư cách là người dùng quản trị viên.

Tôi không thể thay đổi cổng giám sát hiện có (5234) hoặc số cổng từ xa (- R) (1234 trong ví dụ này). Tôi không thể thay đổi bảo mật SSH để cho phép đăng nhập mật khẩu. Tôi không thể mở bất kỳ cổng tường lửa mới. Tôi không thể thay đổi tài khoản người dùng (ngoại trừ trên máy tính xách tay).



@HaukeLaging - có vẻ thú vị nhưng tôi không hiểu điều đó. "Nc" là gì? Và trên máy nào ~ / .ssh / config được chỉnh sửa? Về cơ bản, tôi cần nhiều chi tiết hơn câu hỏi / câu trả lời đó cung cấp. Cảm ơn.
MountainX

Câu hỏi này đã được đặt chéo (không có thông báo) cho Server Fault SE. Đây là hình thức rất BAD!
mdpc

cảm ơn vì đã xuống ở khắp mọi nơi, nhưng có gì sai khi hỏi ở hai nơi khác nhau? Bạn cũng sẽ ngăn tôi hỏi tại ubuntuforums.org hay ở nơi nào khác phải không?
MountainX

@ HaukeLaging-Nếu sử dụng ProxyCommand trong máy tính xách tay của tôi ~ / .ssh / config, tôi phải nhập gì cho Tên máy chủ của Kubfox_Desktop? Không có fqd. Đây là SSH đảo ngược. Cảm ơn.
MountainX

Câu trả lời:


8

Đảm bảo netcat được cài đặt trên máy chủ Debian và sử dụng ProxyCommandtrong cấu hình SSH cục bộ ( ~/.ssh/config).

Host Kubuntu_desktop
  ProxyCommand ssh Debian_Server nc localhost 1234

Tôi đã đưa ra tất cả các bước của mình trong một câu trả lời khác cho đầy đủ, nhưng tất cả là nhờ sự giúp đỡ của bạn. Tôi chấp nhận câu trả lời của bạn. Cảm ơn bạn!!!
MountainX

6

Cảm ơn @Ignacio Vazquez-Abrams, đây là tất cả các bước:

Đảm bảo netcat được cài đặt trên máy chủ Debian và sử dụng ProxyCommand trong cấu hình SSH cục bộ của bạn (~ / .ssh / config).

Tôi đã chỉnh sửa cấu hình như sau:

me@kubuntu_laptop:~/.ssh$ nano config

Nội dung là:

Host kubuntu_desktop
  ProxyCommand ssh debian_server_fqdn nc localhost 1234
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

Sau đó, chỉ cần kết nối:

me@kubuntu_laptop:~$ ssh kubuntu_desktop

Đã kết nối với kubfox_desktop qua SSH sau 1 bước! Hoàn hảo

Cập nhật:

Điều này làm cho nó linh hoạt hơn:

me@kubuntu_laptop:~/.ssh$ nano config

Nội dung mới là:

Host family_desktops
  ProxyCommand ssh debian_server_fqdn nc localhost %p
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

Sau đó, chỉ cần kết nối với mẹ:

me@kubuntu_laptop:~$ ssh family_desktops -p 1234

Và kết nối với bố:

me@kubuntu_laptop:~$ ssh family_desktops -p 5678

Tất nhiên, Bố mẹ phải thiết lập Bước 0 (từ câu hỏi ban đầu của tôi) trong đó mỗi người có cổng -R riêng được xác định. Ví dụ cho bố:

Bước 0 (dành cho bố):

autossh -M 6543 -N -f -R 5678:localhost:22 user@mydebian.com -p 22

Không bắt buộc:

DAD=5678
ssh family_desktops -p $DAD

ProxyCommand cũng có thể được viết là: ProxyCommand ssh debian_server_fqdn -W localhost:%pvì vậy không cần phải có netcat trên máy chủ Debian.
Kevin
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.