VMWare 게스트 VM에 SSH로 연결할 수 있도록 어떻게 설정합니까?


16

어떤 이유로 인터넷에서이 프로세스에 대한 문서가 부족하거나 오래되었습니다. 기본적으로 VMWare Fusion (Ubuntu 10.10 실행)에 게스트 VMWare 가상 머신이 있고 호스트로 Mac OSX 10.6이 있습니다. Mac에서 Linux VM으로 SSH 할 수 있기를 원합니다. 이것이 가능하도록 구성하는 방법은 무엇입니까?


관련 : superuser.com/questions/729712/… 최소한 Windows에서는 VMWare에서 자동으로 설정 한 IP로 ssh 할 수 있습니다.
Ben

답변:


13

절대적으로-로컬 전용 또는 브리지 된 인터페이스를 사용하고 ssh 서버를 실행하는 시스템의 ip 주소를 ifif 명령을 사용하여 해결해야합니다. VM에 openssh-server를 설치하고 ssh 클라이언트를 사용하십시오.

NAT 인터페이스를 사용하는 경우 더 복잡 할 수 있으며 일반적으로 권장되지 않습니다.


1
모르는 사람들을 위해, ssh 서버를 사용하여 service sshd start부팅을 시작하거나 부팅시 시작하려면 잊지 마십시오chkconfig sshd on
Anthony Hatzopoulos

21

실제로 브리지 된 인터페이스가 아닌 VM에서 NAT를 사용하는 데에는 여러 가지 이유가 있습니다. (이것은 오래된 질문이지만,이 작업을 수행하는 방법을 검색하는 첫 번째 결과로 나타났습니다. 항상 그것을 추가 할 가치가 있다고 생각했습니다.)

NAT를 사용해야하는 몇 가지 이유는 다음과 같습니다.

  • 쉽고 휴대가 편리합니다
  • IP를 얻기 위해 알려진 MAC 주소가 필요한 고객 LAN에있는 경우 (그렇지 않으면 사용하지 않는 IP를 추측하여 충돌을 일으킬 수 있으며 일반적으로 자신에게주의를 기울여야합니다.))
  • VM이 호스트에서 단일 프록시 서버를 사용하도록 허용하거나 (사용중인 네트워크를 제어하지 않는 경우 IE) 하나의 방법으로 브로드 캐스트 (윈도우 등) 트래픽을 방화벽 / 필터링 할 수 있습니다. 편리한 장소.
  • 호스트 외부에서 이름 / IP로 참조 할 수 있도록 고정 또는 예약 된 IP를 할당 할 수 있음 (다리로 연결된 인터페이스로 네트워크에서 예약을 얻을 수없는 경우)
  • 그러나 무엇보다도 모든 VM을 "와일드"에 노출시키지 않고 개별적으로 보호해야하는 대신 호스트의 단일 방화벽 구성 뒤에 숨어보다 안전하게 보호 할 수 있습니다. .. 인터넷 모뎀 / 라우터와 마찬가지로

어쨌든, 내 경우 (VMWare Workstation 10, Linux 호스트, OS X Guest) 및이 문제가 발생하는 사람에게는 이것이 나를 위해 일한 개요입니다. 흔들림 및 가정과는 별도로 3 가지 주요 단계 만 있습니다.

  • 따라서 먼저 호스트의 "외부"에서 VM / 게스트에 허용 할 항목을 결정해야합니다 (아래와 같이 호스트 자체에서 쉽게 액세스 할 수 있음). 안전한 방법은 SSH (포트 22) 만 서브넷의 컴퓨터에 노출 / 허용하는 것입니다. VM 등에 웹 서버가있는 경우 포트 80/443을 허용 할 수도 있고 SSH를 사용하여 다른 서비스에 액세스하기 위해 "터널"을 사용할 수도 있습니다 (아래 예 참조). FUSE / SSHFS를 사용하여 호스트 제공 filesystem access .. (또는 VMWare의 공유 폴더 기능이지만 아직 사용하지는 않았습니다).

따라서 아이디어는 "내 호스트의 로컬 네트워크 (예 : 10.1.1.0/24 또는 192.168.1.0/24)에서 호스트의 포트 22222에 연결하도록 허용합니다.이 포트는 포트 22의 22로 전달됩니다. 특정 손님 " 물론 게임 게스트를 허용하기 위해 인터넷 라우터를 통해 IP를 수행하는 것처럼 특정 게스트가되어야합니다 (IP를보다 유용하게 구성하고 각 VM을 열지 않고도 한 곳에서 모두 변경할 수 있음). 등을 통해

  • 다음으로, 어떤 서비스를 결정했으면

    • iptables / firewall을 통해 호스트 시스템의 "외부"포트에 연결합니다. 포트 22는 이미 sshd에 의해 호스트에서 사용될 수 있으므로 22222와 같은 것을 사용할 수 있습니다.이 경우 /etc/ufw/before.rules에 이와 같은 것을 추가하고 ufw를 다시 시작하십시오.

      # 로컬 네트워크 / 서브넷 마스크는 10.1.1.0/24 와 같은 것일 수 있습니다 ...

      -ufw-before-input -p tcp --dport 22222 -m state --state NEW -s my_subnet_and_mask -j ACCEPT`

    • / etc / vmware /의 맨 아래에 이와 같은 것을 추가하여 VM에 기본 VMware DHCP 구성에서 예약 된 IP를 제공합니다 ( 선택 사항이지만 호스트에서 "핀홀"하려는 경우 더 쉽게 신뢰할 수 있음 ). 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; 
      }
      
    • /etc/vmware/vmnet8/nat/nat.conf의 [incomingtcp] 섹션에 추가하여 22222에서 게스트 : 22로 연결을 전달하도록 VMWare에 지시 한 다음 vmware 서비스를 다시 시작하십시오 (아래 참고 참조).

      [들어오는 TCP]

      22222 = 192.168.198.10:22

    • 자신의 방화벽이 있는지 여부에 따라 게스트 에서 포트 22 연결을 허용해야 할 수도 있습니다. 이 OS X 게스트의 경우 공유 설정을 통해 "원격 로그인"을 활성화하고 Linux에서는 위의 호스트와 같이 ufw를 통해 가능합니다.

따라서 모든 작업이 완료되면 랩톱이나 LAN의 다른 시스템에 있고 22222의 워크 스테이션 (vmware 호스트)에 ssh 할 수 있으며 전달하도록 지시 한 게스트에게 다람쥐를 뿌릴 수 있습니다. 위에서 언급했듯이 게스트의 postgres 서버 (또는 종종 암호화되지 않은 vnc 서버)에 연결하고 싶었다면 동일한 명령으로 터널링 할 수도 있습니다 (dhcp conf에도 추가하는 대신). 예를 들어

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

그리고 vmware의 ip forward를 통해 게스트에게 ssh 's 될 수 있으며 pgadmin3 도구가 랩톱의 localhost : 54320 (비 권한)을 가리키고 네트워크의 트래픽이 암호화됩니다. ( 'localhost'는 이미 게스트에게 전달되었습니다.)

노트

  • 이를 수행하는 방법에는 여러 가지가 있습니다. 우선 터널을 호스팅하고 게스트의 IP를 -L로 지정하면 "분출"되어 나옵니다. nat.conf 옵션은 훌륭합니다. 편리하고 매번 입력 할 필요가 없습니다. 다른 포트 포워딩 방법도 있습니다
  • 이 작업을 수행하기 위해 가상 네트워크 GUI의 두 스레드에 대한 참조를 보았지만 (virtualbox와 마찬가지로)이 버전에서는 찾을 수 없었습니다.
  • 창을 사용하지 않으므로 호스트로 구성하는 것이 매우 유사하다고 생각하더라도 확실하지 않습니다. NAT 구성은 모든 vmware 게스트에서 작동해야합니다 (다른 버전의 VMWare를 사용하지는 않았지만).
  • VMware는 호스트가 NAT 게스트에 직접 연결할 수 있도록 호스트 콘솔에서 IE를 연결하고 NAT 게스트 192.168.198.10 (위에 정의 됨)을 직접 ping / ssh 할 수 있도록 경로를 설정합니다.

    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
    
  • 리눅스 노트에서 systemd init을 사용하여 vmware를 멋지게 자동으로 시작하는 몇 가지 문제가 있으며, 그와 함께 vmware를 다시 시작할 수 없으며 (vmci가 다시로드되지 않음) 내 컴퓨터가 NAT / DHCP를 위의 항목으로 만들지 만 문제가 없을 수 있습니다. 그래도 시스템 솔루션이있는 스레드가 있습니다.

잘 들리지만 ufw가 OS X 10.9.5 시스템에없는 것 같습니다. 이전 OS X에 있었지만 이제 다른 것을 사용하고 있습니까?
Steve Jorgensen 2016 년

안녕하세요 @SteveJorgensen, ufw는 Linux에 있습니다 (내 호스트는 Linux이며 게스트는이 답변에서 OS X였습니다). OS X의 경우 호스트와 같은 아이디어입니다. 적절한 도구를 사용하여 호스트의 특정 포트 (위의 경우 22222)에 대한 액세스를 허용하고 VMWare에 게스트로 전달하도록 지시하십시오. UFW의 다른 언급은 (22 위의 경우에) 게스트에 로그인하고 리디렉션 된 포트에 대한 액세스를 허용해야 할 수도 있으므로, 또한, 방화벽을 활성화했을 수도 있습니다 당신이 게스트로 뭐든지 그 것이었다
herdingofthecats을

현재 OS X을 사용할 수 없지만 ipfw어느 시점에서 사용하는 것을 기억하는 것 같습니다 . 나는 당신을 위해 빠른 검색을했고, 많은 도움이 게시물을 보지 못했지만, 언급 pfctl나는 또 다른 게시물 OS X 10.10 최대의 pfctl에 대한 교체 될 것으로 보인다에서 볼 수있는. 나는 그것을 미안하게 시험 할 수는 없지만 그것이 조금 도움이되기를 바랍니다.
catings ofcats

2

일을 단순화하려면 :

  1. VM 실행
  2. 메뉴> 가상 머신> 네트워크 어댑터> 브리지에서.
  3. VM에서 linux :와 같은 IP 주소를 찾으십시오 ifconfig.
  4. 호스트에서 ssh를 사용하여 ssh user@ip.

SSH 서비스가 설치되어 실행되고 있다고 가정합니다.


1

SSH에 IP를 아는 대신 Linux 게스트에서 Avahi를 설정하여 동적 호스트 이름을 브로드 캐스트했습니다. /superuser//a/710233/242604

도움이 되었기를 바랍니다!


-1

인터넷 연결과 쉬운 SSH 연결을 돕는 브리지 네트워크 인터페이스를 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.