Làm cách nào tôi có thể thiết lập nó để tôi có thể SSH vào máy khách VMWare của mình?


16

Vì một số lý do, tài liệu về quy trình này trên internet khá thiếu hoặc lỗi thời. Về cơ bản, tôi có một máy ảo VMWare khách trong VMWare Fusion (chạy Ubuntu 10.10) và tôi có Mac OSX 10.6 làm máy chủ. Tôi muốn có thể SSH từ Mac sang Linux VM. Làm thế nào tôi có thể cấu hình mọi thứ để điều này là có thể?


Liên quan: superuser.com/questions/729712/ ( Ít nhất là trên Windows, bạn chỉ có thể ssh đến một IP được thiết lập tự động bởi VMWare.
Ben

Câu trả lời:


13

hoàn toàn - đó chỉ là vấn đề sử dụng giao diện cục bộ hoặc giao diện cầu nối và xử lý địa chỉ IP của hệ thống chạy máy chủ ssh (sử dụng lệnh ifconfig). cài đặt openssh-server trên VM, sử dụng ứng dụng khách ssh của bạn và hoàn tất.

Nếu bạn đang sử dụng giao diện NAT, nó có thể phức tạp hơn và thường không được khuyến khích.


1
Đối với những người không biết, đừng quên khởi động máy chủ ssh bằng cách sử dụng service sshd starthoặc nếu bạn muốn khởi động nó khi chạy bootupchkconfig sshd on
Anthony Hatzopoulos

21

Trên thực tế, có rất nhiều lý do chính đáng để sử dụng NAT với máy ảo của bạn, thay vì giao diện cầu nối .. (Đây là một câu hỏi cũ, nhưng nó xuất hiện khi kết quả đầu tiên của tôi tìm kiếm cách thực hiện điều này, di chuyển từ VirtualBox nơi tôi làm tất cả thời gian, vì vậy tôi nghĩ rằng nó đáng để thêm vào)

Chỉ cần một vài lý do để sử dụng NAT là:

  • Thật dễ dàng và di động
  • nếu bạn đang sử dụng mạng LAN khách hàng yêu cầu địa chỉ MAC đã biết để nhận IP (nếu không, bạn sẽ phải thử đoán những người không sử dụng và có nguy cơ xảy ra xung đột và thường gây chú ý cho chính mình :)),
  • những thứ như cho phép máy ảo của bạn sử dụng một máy chủ proxy duy nhất trên máy chủ của bạn (IE nếu bạn không kiểm soát mạng bạn đang bật) hoặc có thể tường lửa / lọc lưu lượng phát sóng (windows, v.v.) của chúng trên đường ra nơi thuận tiện.
  • có thể chỉ định cho họ một IP cố định hoặc dành riêng để bạn có thể tham khảo chúng theo tên / IP từ bên ngoài máy chủ (một lần nữa, nếu bạn không thể đặt chỗ trên mạng với giao diện bắc cầu)
  • nhưng trên hết, nó cho phép bạn ẩn đằng sau một cấu hình tường lửa duy nhất trên máy chủ của mình và chia sẻ mọi thứ giữa bạn / chúng theo cách được bảo vệ hơn, thay vì phơi bày mọi VM thành "hoang dã" và phải bảo vệ chúng một cách riêng lẻ, v.v. .. Giống như bạn làm với modem / bộ định tuyến internet

Dù sao, đối với trường hợp của tôi (VMWare Workstation 10, máy chủ Linux, OS X Guest) và bất kỳ ai vấp phải điều này, đây là tổng quan về những gì làm việc cho tôi. Ngoài waffling và what-ifs, thực sự chỉ có 3 bước chính.

  • Vì vậy, trước tiên, bạn cần quyết định những gì bạn muốn cho phép VM / khách của bạn từ "bên ngoài" máy chủ của bạn (lưu ý như bên dưới, bạn sẽ có thể dễ dàng truy cập nó từ máy chủ). Đặt cược an toàn sẽ chỉ hiển thị / chỉ cho phép SSH (cổng 22), cho các máy trên mạng con của bạn. Bạn cũng có thể cho phép cổng 80/443 nếu bạn có máy chủ web trên VM, v.v. và bạn cũng có thể sử dụng "đường hầm" để truy cập các dịch vụ khác bằng SSH (sẽ đưa ra ví dụ bên dưới) và sử dụng FUSE / SSHFS để cung cấp cho máy chủ của bạn truy cập hệ thống tệp .. (Hoặc tiện ích thư mục dùng chung trên VMWare, nhưng tôi chưa sử dụng nó).

Vì vậy, ý tưởng này giống như: "Cho phép mọi thứ trên mạng cục bộ của máy chủ của tôi (Ví dụ: 10.1.1.0/24 hoặc 192.168.1.0/24) kết nối với cổng 22222 trên máy chủ, chúng tôi sẽ chuyển tiếp đến cổng 22 của một khách cụ thể ". Tất nhiên nó phải là một khách cụ thể (Điều này giúp có thể định cấu hình IP của bạn hữu ích hơn và bạn có thể thay đổi tất cả chúng ở một nơi mà không cần mở từng VM), giống như thực hiện thông qua bộ định tuyến internet của bạn để cho phép chơi trò chơi thông qua vv

  • Tiếp theo, khi đã quyết định dịch vụ nào, bạn sẽ cần

    • cho phép các kết nối trên máy chủ của bạn đến cổng "bên ngoài" thông qua iptables / tường lửa. Cổng 22 có thể đã được sử dụng trên máy chủ bởi sshd, vì vậy bạn có thể sử dụng cái gì đó như 22222. Trong trường hợp này, hãy thêm cái gì đó như thế này vào /etc/ufw/b Before.rules (và khởi động lại ufw)

      # Mặt nạ mạng / mạng con cục bộ của bạn có thể giống như 10.1.1.0/24 ...

      -A ufw-before-input -p tcp --dport 22222 -m state --state MỚI -s my_subnet_and_mask -j CHẤP NHẬN `

    • cung cấp cho máy ảo của bạn một IP dành riêng trong cấu hình VMware DHCP chính ( tùy chọn, nhưng dễ dàng dựa vào hơn nếu bạn muốn "pinhole" cho nó từ máy chủ ), bằng cách thêm một cái gì đó như thế này vào cuối / etc / vmware / vmnet8 / dhcpd / dhcpd.conf

      # Just like a normal dhcpd reservation
      host my_vm_1 {
           hardware ethernet *your_vm_eth_mac_here**;
           # This is in default range for guests, but outside the 'pool'.
           # - check that it matches your vmware config
           fixed-address 192.168.198.10; 
           # And/or your own internal nameserver etc
           option domain-name-servers 8.8.8.8;
           option domain-name "some_domain_suffix";
           # This is the default default-route of the VM
           option routers 192.168.198.2; 
      }
      
    • Yêu cầu VMWare chuyển tiếp các kết nối từ 22222 đến khách: 22 bằng cách thêm phần này vào phần [đếntcp] của /etc/vmware/vmnet8/nat/nat.conf, sau đó khởi động lại (các) dịch vụ vmware (xem ghi chú bên dưới)

      [đếntcp]

      222222 = 192.168.198.10:22

    • Bạn cũng có thể cần cho phép kết nối cổng 22 trong khách của mình, tùy thuộc vào đó là gì / nếu nó có tường lửa của riêng nó. Trong trường hợp khách OS X này, nó đã kích hoạt "đăng nhập từ xa" thông qua cài đặt Chia sẻ, trên linux, nó có thể thông qua ufw như trên máy chủ ở trên, v.v.

Vì vậy, một khi tất cả đã xong, bạn có thể ở trên máy tính xách tay hoặc máy khác trên mạng LAN, ssh đến máy trạm của bạn (máy chủ vmware) vào ngày 22222 và bạn sẽ được gửi đến khách mà bạn đã nói với bạn để chuyển tiếp cho bạn. Như đã đề cập ở trên, nếu bạn cũng nói muốn có thể kết nối với máy chủ postgres trên máy khách (hoặc máy chủ vnc, thường không được mã hóa), bạn có thể tạo đường hầm trong cùng một lệnh (thay vì thêm nó vào conf dhcp). Ví dụ

console ~> ssh root@hostip -p 22222 -L 54320:localhost:5432

và bạn sẽ được gửi cho khách thông qua ip chuyển tiếp trong vmware và có thể trỏ công cụ pgadmin3 của bạn tới localhost: 54320 (không thuộc quyền sở hữu) trên máy tính xách tay của bạn và lưu lượng truy cập của bạn trên mạng sẽ được mã hóa. (Lưu ý 'localhost' đã được chuyển tiếp cho khách)

Ghi chú

  • Có tất cả các cách để làm điều này .. Đối với một, bạn chỉ có thể tạo đường hầm để lưu trữ và chỉ định ip của khách trong -L và nó sẽ "thoát ra" và chỉ cho bạn ở đó, nhưng tùy chọn nat.conf rất hay và thuận tiện và bạn không phải gõ nó mỗi lần. Ngoài ra còn có các cách chuyển tiếp cổng khác
  • Tôi đã thấy tham chiếu đến một vài chủ đề của một gui mạng ảo để làm điều này (giống như hộp ảo), nhưng tôi không thể tìm thấy nó trong phiên bản này
  • Tôi không sử dụng windows, vì vậy mặc dù tôi cho rằng nó sẽ rất giống với cấu hình như một máy chủ lưu trữ, tôi không chắc chắn. Các cấu hình NAT sẽ hoạt động cho mọi khách vmware mặc dù (mặc dù tôi chưa sử dụng bất kỳ phiên bản VMWare nào khác)
  • VMware thiết lập một tuyến đường để máy chủ có thể liên hệ trực tiếp với khách NAT, IE từ bảng điều khiển của máy chủ, tôi có thể ping / ssh, v.v ... khách NAT 192.168.198.10 (được xác định ở trên)

    console ~> route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    <snip>
    192.168.198.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
    192.168.233.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
    
  • Từ một ghi chú linux, có một số vấn đề với vmware với systemd init để khởi động độc đáo, và cùng với đó tôi đã tìm thấy tôi không thể khởi động lại vmware (vmci không tải lại) và tôi phải khởi động lại Máy của tôi để tạo ra các công cụ NAT / DHCP ở trên, nhưng bạn có thể không gặp vấn đề gì. Có một số chủ đề với các giải pháp systemd mặc dù

Âm thanh tuyệt vời, nhưng ufw dường như không xuất hiện trên máy OS X 10.9.5 của tôi. Đó có phải là thứ mà OS X cũ hơn đã có, nhưng bây giờ sử dụng thứ khác thay thế?
Steve Jorgensen

Xin chào @SteveJorgensen, ufw thuộc linux (Máy chủ của tôi là linux và khách là OS X trong câu trả lời này), nhưng cùng một ý tưởng với OS X là máy chủ; cho phép truy cập vào một số cổng cụ thể (trong trường hợp trên 22222) trên máy chủ với bất kỳ công cụ nào phù hợp và yêu cầu VMWare thực hiện chuyển tiếp cho khách. Một đề cập khác của ufw là bất cứ điều gì bạn có với tư cách là khách, nó cũng có thể bật tường lửa, vì vậy bạn có thể cần phải đăng nhập vào khách và cho phép truy cập vào cổng mà bạn đang chuyển hướng (trong trường hợp trên, 22)
herdingofthecats

Hiện tại tôi không có sẵn OS X, nhưng đôi khi tôi dường như vẫn nhớ sử dụng ipfw. Tôi đã tìm kiếm nhanh cho bạn và không thấy nhiều bài viết hữu ích, nhưng đề cập nàypfctl , mà tôi thấy trong một bài đăng khác dường như là sự thay thế cho pfctl trong OS X 10.10 trở lên. Tôi không thể kiểm tra nó xin lỗi, nhưng hy vọng nó sẽ giúp một chút
herdingofthecats

2

Để đơn giản hóa mọi thứ:

  1. Chạy VM của bạn
  2. Từ menu> Máy ảo> Bộ điều hợp mạng> Cầu nối.
  3. Trong VM của bạn, tìm địa chỉ IP của bạn, chẳng hạn như trong linux : ifconfig.
  4. Từ máy chủ, ssh sử dụng ssh user@ip.

Tôi giả sử bạn đã cài đặt và chạy dịch vụ SSH.


1

Thay vì biết IP để SSH vào, tôi đã thiết lập Avahi cho khách Linux của mình để nó phát tên máy chủ động, hãy xem câu trả lời của tôi tại đây: /superuser//a/710233/242604

Hi vọng điêu nay co ich!


-1

Bạn có thể sử dụng giao diện mạng cầu nối giúp kết nối Internet và kết nối SSH dễ dàng.

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.