SSH vào máy không có IP thật


0

Vấn đề cụ thể: Cho tôi có một máy có địa chỉ IP thực (ví dụ Amazon Linux) A1 và tôi đang sử dụng máy cục bộ cá nhân L1 và tôi có một máy chủ nhỏ đang chạy ở nhà L2

Làm thế nào tôi có thể ssh vào L2 từ L1 như tôi làm với A1? nếu L2 không có IP thật ...

Tôi đang chạy nhiều dịch vụ vi mô java trên các máy aws, tất cả các dịch vụ này không cần phải mở rộng quy mô, tôi không cần bất kỳ tính năng ưa thích nào mà các nhà cung cấp đám mây cung cấp nhưng càng nhiều dịch vụ tôi càng chạy, hóa đơn của tôi càng lớn giao tiếp phức tạp hơn giữa họ ...

Vì vậy, bây giờ tôi muốn mua một máy chủ có nhiều RAM và CPU, chạy tất cả các dịch vụ trên đó và tránh sử dụng AWS hoặc bất kỳ nhà cung cấp nào ... Tôi có các tập lệnh khác nhau sẽ ssh vào máy chủ từ xa và thực hiện một số công việc liên quan đến triển khai ... Tôi muốn chúng vẫn hoạt động với L2 khi tôi thực thi chúng từ máy cá nhân ...

Nếu có những cách đơn giản hơn để làm điều này, xin vui lòng đề xuất. Nhưng hiện tại tôi thấy hai giải pháp, hoặc tôi nhận được địa chỉ IP thực từ nhà điều hành hoặc tôi sử dụng aws hoặc một số máy giả với IP thực để kết nối hai máy L1 và L2 ...

Tôi hầu như không thực hiện bất kỳ quản trị cơ sở hạ tầng nào vì vậy xin lỗi tôi nếu đó là một câu hỏi không ...


Có phải L1 trên cùng một mạng với L2 (cả hai đều được kết nối với bộ định tuyến kết nối với internet)? Nếu vậy, bạn có địa chỉ IP cục bộ bắt đầu bằng 10.1.xx hoặc 192.168.xx Từ máy chủ và máy L1 của bạn, hãy chạy ip addrđể xem địa chỉ đó là gì.
mcalex

không họ không, giả sử máy chủ nhà của tôi chạy 24/7 nhưng tôi có thể ở bất cứ đâu trên thế giới, tôi phải có thể đăng nhập vào máy ...
vach

IP bên ngoài máy chủ của bạn có thể được tìm thấy bằng cách googling: whatsmyip (từ trình duyệt trên máy chủ)
mcalex

Câu trả lời:


1

Nếu máy chủ L2 của bạn nằm trên mạng gia đình thì nó nằm phía sau bộ định tuyến của bạn và không hiển thị từ Internet theo mặc định (có nghĩa là không có máy nào trên Internet có thể mở kết nối với nó). Như đã nói ở trên, nó nằm trong mạng gia đình địa phương của bạn với địa chỉ là 10 .. . * hoặc 192.168. .

Từ quan điểm của Internet (và điều này bao gồm hệ thống L1 của bạn khi bạn không ở nhà), thiết bị duy nhất có địa chỉ Internet thực sự là bộ định tuyến của bạn và tất cả các máy gia đình của bạn kết nối với Internet dường như có địa chỉ đó (vì vậy bạn có thể lấy địa chỉ Internet của bộ định tuyến bằng cách truy cập một số trang như showmyip.net bằng trình duyệt Internet của bạn). Lợi ích của việc thiết lập là tin tặc ngẫu nhiên không thể mở kết nối đến máy của bạn.

Bạn thường có thể yêu cầu bộ định tuyến của mình chuyển tiếp các yêu cầu kết nối đến một số cổng (ví dụ SSH) đến một máy cụ thể (địa chỉ IP) trong mạng cục bộ của bạn, vì vậy SSH đến địa chỉ Internet của bạn từ bất kỳ đâu trên Internet sẽ thực sự kết nối bạn với bạn Máy chủ L2. Xem hướng dẫn ví dụ ở đây .

Lưu ý rằng đây có thể không phải là một ý tưởng hay (vì nếu bạn mắc lỗi, bạn có thể mở mạng gia đình cho tin tặc và nếu có điều gì xấu xảy ra, địa chỉ Internet của bạn có thể bị liệt vào danh sách đen). Điều đó cũng yêu cầu bạn có một địa chỉ mạng cố định (hoặc bạn có thể dễ dàng tìm thấy địa chỉ mới của mình khi nó thay đổi). Máy chủ được lưu trữ thường vẫn là một giải pháp tốt hơn, nhưng AWS không phải là nhà cung cấp duy nhất, bạn có thể nhận được các máy chủ VPS Linux có giá 5 đô la một tháng.


Vì vậy, nếu tôi hiểu chính xác bộ định tuyến của tôi có một địa chỉ IP không thay đổi trừ khi tôi đăng nhập vào bộ định tuyến và tự thay đổi. Và tôi có thể chuyển tiếp kết nối. Chuyển tiếp là tuyệt vời và nó dường như là chính xác những gì tôi muốn. Bây giờ để tránh một số hacker ngẫu nhiên sshing vào máy của tôi, tôi có thể tạo khóa .pem (hoặc một cái gì đó tương tự) sao cho chỉ ai có nó mới có thể ssh thành công vào L2? loại như aws yêu cầu nó ...
vach

tôi nghĩ rằng tôi đã tìm thấy nó digitalocean.com/community/tutorials/ từ
vach

4

Đây chính xác là loại vấn đề SSH chuyển tiếp từ xa giải quyết.
Điều này đòi hỏi bạn phải có A1, một máy có IP thật. Một cỗ máy có nguồn lực rất hạn chế là OK vì nó chỉ hoạt động như một ván nhảy.
Vì L2 không có IP thực, bạn cần khởi tạo kết nối ssh từ L2 đến A1 và tạo đường hầm:

root@L2# ssh user@A1 -R 9022:localhost:22   

Vì vậy, bây giờ bất cứ khi nào một kết nối đến cổng 9022 trên A1, nó được chuyển tiếp đến cổng 22 trên L2.
Bây giờ bạn có thể 1) SSH đến A1 2) từ đó SSH sang localhost 9022

Tất nhiên, bạn có thể thực hiện một số tinh chỉnh cho giải pháp này, ví dụ như tự động khởi tạo lại kết nối từ L2 đến A1 khi ngắt kết nối. ví dụ: hãy để SSH nghe trên cổng 9022 trên IP thực thay vì địa chỉ loopback (yêu cầu chỉnh sửa cấu hình SSHD).


0

Hướng dẫn kết nối với máy tính ở nhà bằng ssh từ internet:

  1. Nếu bạn có một ip tĩnh phía sau bộ định tuyến, bạn có thể kết nối với máy tính ở nhà từ internet
  2. Chuyển tiếp cổng 22 trên bộ định tuyến của bạn, đây là một số ví dụ về cách thực hiện
  3. Cài đặt openssh-server trên máy cục bộ của bạn:

    sudo apt cài đặt openssh-server

  4. Cho phép kết nối với 22 cổng cho máy cục bộ:

    iptables -A INPUT -p tcp --dport 22 -j CHẤP NHẬN

  5. Kiểm tra kết nối của bạn từ máy từ xa bằng telnet:

    telnet you_external_ip 22

  6. Kết nối với máy cục bộ bằng ssh:

    ssh your_external_ip

  7. Để kết nối an toàn, bạn có thể thiết lập xác thực hai yếu tố ssh

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.