Putty를 사용하여 로컬 VM Ubuntu에 SSH 시도


145

우분투 서버의 VM을 설정하고 OpenSSH를 설치했으며 이제 Putty를 사용하여 연결하려고합니다. Putty 내에서 "Host name"아래에 "Ubuntu"를 넣습니다. VM을 설정할 때 호출 된 것으로 생각됩니다. 그러나 "연결 시간이 초과되었습니다"라는 오류 메시지가 나타납니다.

또한 Putty 내의 호스트 이름에 "127.0.0.1"을 넣고 "Connection Refused"를 얻었습니다. Oracle VM에서 SSH 및 HTTP에 대한 포트 전달을 수행 했으므로 실행 방법에 대한 손실이 있습니다.


FWIW 브리지 / 호스트는 나에게만 효과가 없었지만 본질적으로 SSH의 "out"(scp는 결국 양방향으로 갈 수 있음)만으로 해결할 수 있었으므로 SSH 액세스가 필요하지 않았습니다. 손님 내에서.
rogerdpack

답변:


183

VirtualBox는 사설 네트워크 (10.0.2.x)를 만들어 NAT를 사용하여 호스트 네트워크에 연결합니다 . (달리 구성하지 않는 한)

이는 호스트 네트워크에서 개인 네트워크의 호스트에 직접 액세스 할 수 없음을 의미합니다. 그렇게하려면 포트 포워딩이 필요합니다. 예를 들어 VM의 네트워크 환경 설정에서 127.0.1.1에서 포트 22를 열고 ( 호스트 의 루프백 주소) 10.0.2.1의 포트 22 (VM의 내부 주소)로 트래픽을 전달 하도록 VirtualBox를 구성 할 수 있습니다.

이렇게하면 퍼티를 포트 127.0.1.1의 포트 22로 지정할 수 있으며 VirtualBox는이 연결을 ssh 데몬이 응답하는 VM으로 리디렉션하여 로그인 할 수 있도록합니다.


20
고마워, 이것은 나를 위해 일했다. cygwin에서 지금 할 수 있고 있습니다 ssh username@127.0.1.1. 필요한 패널은 Settings-> Network-> Port Forwarding이며, 다음과 같이 표시됩니다. imgur.com/BjGh3N2
user7543

38
포트가 겹치므로 이미 호스트에서 ssh를 실행중인 경우 작동하지 않습니다. 포트 127.0.1.1:2222를 10.0.2.X : 22로 리디렉션 한 다음 호스트에서 'ssh 127.0.1.1 -p 2222'를 실행하십시오.
dzlatkov

8
또한 클라이언트 OS에 openssh-server가 설치되어 있는지 확인하십시오. sudo apt-get install openssh-server
Illuminati

17
설명해 주셔서 감사합니다. 나는 기본적으로 당신이 말한 것을 따랐습니다. 설정으로 이동하여 연결에 'NAT'가 표시되었습니다. 화면 하단에서 '포트 포워딩'옵션을 클릭했습니다. 이름을 'PuTTY-port-fwd', 프로토콜 TCP, 호스트 IP 127.0.0.1 호스트 포트 2222 게스트 IP 10.0.2.15 게스트 포트 22로 지정했습니다. 그런 다음 PuTTY를 시작하고 127.0.0.1 포트 2222로 설정하고 연결했습니다. 내 OpenSUSE vm. 감사의 사람은,이 ;-) 미래에 사람이 도움이되기를 바랍니다
BubbleMonster

3
127.0.0.1에서 포트 2222를 열도록 VirtualBox에 지시해야했지만 이것은 나를 위해 일했습니다. 그런 다음ssh -p 2222 user@127.0.0.1
mchen.ja

44

가상 상자에서 우분투에 연결하기 위해 퍼티를 사용하고 싶었습니다 (편안한 이유로 VB는 이상합니다. 올바른 터미널에 있지 않으면 작동 할 수 없습니다). 어쨌든,

  1. ssh 클라이언트가 Linux에 설치되어 있는지 확인하십시오. 그렇지 않은 경우 설치하십시오 sudo apt install ssh.
  2. OS의 전원을 끕니다.
  3. 이제 VB에서 이동 Settings -> Network ->Adapter 1선택 Host-only adapter>을 클릭 - OK.
  4. 이제 OS를 시작하십시오. 실행 ifconfig; 이제 inet 주소는 IP입니다.
  5. 이것을 사용하여 퍼티에서 실행하십시오. 자격 증명으로 로그인하십시오.

호스트 전용 어댑터를 사용하는 유일한 단점은 게스트 OS가 더 넓은 네트워크 (예 : 인터넷)에 액세스 할 수 없다는 것입니다.

VM에 인터넷 액세스 권한이 필요한 경우 어댑터 1을 NAT로두고 호스트 전용 어댑터로 구성된 어댑터 2를 활성화하십시오. 이를 통해 VM은 NAT를 사용하여 인터넷에 연결하고 호스트 전용을 사용하여 호스트에 로컬로 연결할 수 있습니다.


4
큰 인터넷 사용자의 로컬 인터페이스와 다리 액세스에 IP를 넣어 것 "다리"
듀크

2
여기에 설명 된 것처럼 브리지에 비해 두 개의 인터페이스를 사용하면 로컬 DHCP 서버가 요청을 수락하지 않아도됩니다. 공공 장소 (공항, 비행기, 호텔 및 대부분의 회사 네트워크)에있는 대부분의 DHCP 서버는 동일한 Wi-Fi 어댑터를 통해 두 번째 IP를 제공하지 않으므로 브리지 된 VM은 해당 환경에서 작동하지 않습니다. 다음은이 특정 설정을 설정하는 방법에 대한 정말 좋은 단계별는 다음과 같습니다 christophermaier.name/2010/09/01/...는
이브 Dorfsman

매력처럼 작동하지만 사람들이 NAT를 내버려 두도록 어댑터 2를 세 번째 옵션에 배치해야합니다.
user3502626

매우 감사합니다.
누가 복음

매우 감사합니다. 나는에서 우분투 네트워크 설정을 변경할 때 NAT까지 host only adapter그것은 더 이상 인터넷에 모든 솔루션을 연결할 수 없습니다?
누가 복음

19

먼저 VM이 브리지 연결 또는 NAT를 통해 호스트 시스템에 연결되어 있는지 확인해야하지만, 이더넷 방식에서는 VM 터미널 실행에서 IP에 연결할 수 있도록 퍼티에 VM IP 주소를 넣어야합니다. 이 명령은 시스템 IP 주소를 표시합니다 (시스템 IP 주소가 아닌 127.0.0.1이 아님).

VM # ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:d9:16:b3 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.1 scope global eth0
       valid_lft forever preferred_lft forever

이 경우 내 IP 주소는 10.0.2.15입니다.

먼저 VM과 기본 수준에서 통신하고 호스트에서 터미널 창을 열고 VM을 핑 (Ping)하려고 시도하십시오.

HOST # ping 10.0.2.15

PING 10.0.2.15 (10.0.2.15) 56(84) bytes of data.
64 bytes from 10.0.2.15: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 10.0.2.15: icmp_seq=2 ttl=64 time=0.110 ms
64 bytes from 10.0.2.15: icmp_seq=3 ttl=64 time=0.099 ms

개미 결과가 나오면 VM에서 VM 유형의 터미널에 root로 ssh 서비스가 실행되고 있는지 확인하십시오.

VM # netstat -lnpt | grep 22
tcp   0  0  0.0.0.0:22  0.0.0.0:*  LISTEN  2361/sshd

포트 22를 수신하는 sshd (OpenSSH 데몬)라는 PID (2361)의 서비스 / 프로세스가 있음을 알 수 있습니다.

VM 자체에서 ssh를 시도하여 서비스가 올바르게 작동하는지 테스트 할 수 있습니다.

VM # ssh 127.0.0.1

다음으로 방화벽 / iptables에서 포트 22를 차단하지 않아야합니다. 믿을 수는 없지만 어쨌든 확인하십시오. VM에서이 명령을 입력하면 iptables가 표시됩니다.

VM # iptables -nvL INPUT

출력에서 다음과 같은 줄이 있어야합니다.

0  0  ACCEPT  tcp  --  *  *  0.0.0.0/0  0.0.0.0/0  tcp  dpt:22  ctstate  NEW

그것을 시도하고 내 IP 주소는 10.0.2.15입니다. 퍼티에 입력을 시도하고 connection timed out오류가 다시 발생했습니다. 나는 또한 시도 nvL당신이 언급 명령을하고, 물건 (더 나은 단어의 부족)의 부하를 얻을 - Chain INPUT (policy accept......, chain FORWARD.....
wickywills

확인할 수있는 몇 가지 사항으로 답변을 다시 작성하겠습니다. 알려주십시오.
Rabin

2
Ping 10.0.2.15가 시간 초과되면 어떻게됩니까? NAT를 사용합니다.
Dan Dascalescu

포트 포워딩 이 답이었습니다.
Dan Dascalescu

편의상 : iptables -A INPUT -p tcp --dport ssh -j ACCEPTiptables에 tcp가 표시되지 않으면 들어오는 트래픽을 허용합니다.
Eric Hodgins

15

내 해상도는 Roman T와 비슷하지만 몇 가지 단계를 추가해야했습니다. 필자의 경우 Windows 2008 도메인의 Windows 8 데스크톱에서 Ubuntu Server 14 VM을 실행했습니다. NAT 또는 Bridge를 시도하면 인터넷에 액세스 할 수 있지만 SSH를 통해 연결할 수 없었습니다.

호스트 전용 어댑터를 사용하면 SSH를 통해 시스템에 액세스 할 수 있지만 인터넷에 액세스 할 수 없습니다.

포트 포워딩도 시도했지만 기쁨은 없습니다. Wireshark를 열었고 VM을 찾지 못했습니다.

그래서 내 솔루션은 두 번째 네트워크 어댑터를 추가하는 것이 었습니다.

방법

VM 전원을 끈 상태

  1. 설정> 네트워크를 클릭하고 어댑터 1을 클릭하고 브리지 된 어댑터를 선택하십시오.
  2. 어댑터 2를 클릭하고 호스트 전용 어댑터를 선택하십시오.
  3. NAT 네트워크가 보이지 않으면 파일> 환경 설정> 네트워크를 클릭하십시오. NAT 네트워크가 보이지 않으면 + 아이콘을 클릭하여 NAT 네트워크를 추가하십시오.
  4. 호스트 전용 네트워크가 보이지 않으면 호스트 전용 네트워크를 클릭하십시오. + 아이콘을 클릭하여 추가하십시오

VM 시작

  1. 네트워크 어댑터를 보려면 다음을 입력해야합니다

    ifconfig -a
    
  2. 네트워크 어댑터가 IP 주소가 아닌 mac 주소로 추가 된 것을 볼 수 있습니까?

  3. 그렇다면 DHCP를 구성하기 위해 / etc / network / interfaces를 편집해야합니다. 아래 예제는 VI / VIM을 사용하지만 원하는 편집기를 사용할 수 있습니다

    sudo vi /etc/network/interfaces
    
  4. 라인을 추가

    auto eth1
    iface eth1 inet dhcp
    
  5. 파일을 저장하고 종료하십시오.
  6. 그런 다음 아래 명령을 사용하여 네트워크 서비스를 다시 시작하십시오.

    sudo service networking restart
    
  7. 또는 실패하면 VM을 다시 시작하십시오.
  8. eth1에 IP 주소가 할당되었는지 확인하려면 아래를 다시 시작하십시오.

    ifconfig -a
    
  9. 그렇다면 VM에 SSH로 연결할 수 있는지 확인하십시오.

솔루션을 시도했지만 새 인터페이스에 IP가 할당되지 않았습니다. 또한 VBox에서 DHCP를 활성화했습니다.
Athlan

12

다음 지침은 Ubuntu 14.04 및 Oracle VirtualBox 4.3.30에서 작동했습니다.

VirtualBox에서이를 수행하십시오.

  1. 가상 머신을 마우스 오른쪽 버튼으로 클릭하고 "설정"을 선택한 다음 "네트워크"를 선택하십시오.

  2. "Attached to"옆에있는 "Host-only Adapter"를 선택하십시오. 참고로 "브릿지 어댑터"도 작동합니다. 각 옵션에 대한 자세한 내용은 VirtualBox 설명서를 확인하십시오.

가상 머신 내부에서이를 수행하십시오.

  1. 터미널을 열고을 입력하여 네트워크 IP 주소를 찾으십시오 ifconfig. "inet addr"에서 eth0 옆에 표시된 IP 주소를 확인하십시오. 바탕 화면 오른쪽 상단에있는 네트워크 아이콘을 클릭 한 다음 "연결 정보"를 선택하면 IP 주소를 볼 수도 있습니다.

  2. 터미널에 다음을 입력하여 openssh-server를 설치하십시오.

    sudo apt-get install openssh-server
    
  3. 경우에 따라 가상 머신을 다시 시작하십시오.

이제 위 1 단계의 IP 주소와 포트 22를 사용하여 PuTTY에서 연결할 수 있습니다.


2

Ubuntu 18.04 및 VirtualBox 5.2의 경우 :

  1. 호스트 네트워크 인터페이스 생성

    나는. Virtualbox에서 File/를 클릭하십시오 Host Network Manager.

    ii. 호스트 네트워크 어댑터가없는 경우 (기본값 vboxnet0)을 클릭하십시오 Create.

  2. VM에 호스트 전용 어댑터 설정 사용

    나는. Virtualbox에서 VM을 마우스 오른쪽 버튼으로 클릭하고을 선택 Settings합니다.

    ii. 을 클릭 Network하고을 선택하십시오 Adapter 2.

    iii. 를 클릭하십시오 Enable Network Adapter.

    iv. 아래에서를 Attached to:선택하십시오 Host-only Adapter. 1 단계에서 작성한 어댑터 이름이 나타납니다 (기본값 vboxnet0).

  3. VM에서 네트워크 설정 구성

    나는. VM을 시작하고 추가 된 인터페이스를 확인하십시오 ip a.. inet주소 가없는 인터페이스를 찾으십시오 . 내 것은이었다 enp0s8.

    ii. 편집 /etc/netplan/01-netcfg.yaml. 예 sudo vi /etc/netplan/01-netcfg.yaml.

    iii. 원래 어댑터의 설정에서 구성 세부 사항을 추가하십시오.

    enp0s8:
        addresses: [192.168.56.2/24]
        gateway4: 192.168.56.1
        dhcp4: no
    

    SSH 편의를 위해 VM에 고정 IP 주소를 할당합니다. 당신이 원하는 경우 dhcp대신 주소를 처리하기 위해, 주소 및 게이트웨이 설정 및 설정 생략 dhcp4에를 yes.

    iv. 구성 파일을 다시로드하십시오 sudo netplan apply..

  4. VM으로 SSH

    나는. sshVM에 설치하지 않은 경우 : sudo apt install ssh.

    ii. 호스트 시스템에서 SSH를 VM에 연결하십시오 ssh <username>@192.168.56.2.


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