일반적인 문제: ssh: 호스트 10.0.2.15 포트 22에 연결: 연결이 거부되었습니다.

일반적인 문제: ssh: 호스트 10.0.2.15 포트 22에 연결: 연결이 거부되었습니다.

Guest DTWindows 10(호스트)에서 VirtualBox를 사용하여 두 개의 가상 머신( 및 ) 을 생성하고 있습니다 Guest S. Guest DT에서 까지 SSH를 통해 연결할 수 있나요 Guest S?

  • Guest DT우분투인가데스크탑18.04.
  • Guest S우분투를 실행 중입니다섬기는 사람18.04.
  • VirtualBox 용어

저는 SSH에 대한 경험이 없습니다. 나는 이 사이트의 '유사한 질문'에 대한 답변을 검색하고 읽었습니다.

오류

에서는 Guest DT다음을 수행합니다.

$ ssh [email protected]
ssh: connect to host 10.0.2.15 port 22: Connection refused

메모:

  • 10.0.2.15에 성공적으로 ping할 수 있습니다.
  • test에 있는 내 사용자 이름은 입니다 Guest S.

환경설정

Guest DT:

$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub
ssh-rsa <a very long key> neil@neil-VirtualBox

Guest S:

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ echo "ssh-rsa <a very long key> neil@neil-VirtualBox" > ~/.ssh/authorized_keys
$ /etc/init.d/ssh restart

Guest S:

test@server01:~$ service sshd status

ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-06-15 02:05:04 UTC; 1h 16min ago
  Process: 903 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 906 (sshd)
    Tasks: 1 (limit: 2317)
   CGroup: /system.slice/ssh.service
           └─906 /usr/sbin/sshd -D

Jun 15 02:05:04 server01 systemd[1]: Starting OpenBSD Secure Shell server...
Jun 15 02:05:04 server01 sshd[906]: Server listening on 0.0.0.0 port 22.
Jun 15 02:05:04 server01 sshd[906]: Server listening on :: port 22.
Jun 15 02:05:04 server01 systemd[1]: Started OpenBSD Secure Shell server.


$ sudo ufw status
[sudo] password for test: 
Status: inactive


/etc/ssh/sshd_config  contains :
#PubkeyAuthentication yes

답변1

NATVirtualBox 게스트의 기본 네트워킹 설정은 실제로 이러한 유형의 네트워킹 통신을 달성하기 위한 의도는 아니지만 실제로는 그렇지 않다고 생각합니다 . 하지만 오래된 게시물을 기반으로 하면 가능할 수도 있습니다.전송비시스템 포트를 게스트 포트로 연결하고 기본값을 사용합니다.루프백 IP 주소손님에게 다가가기 위해. 10.0.2.2는 기본 루프백입니다.

네트워킹 설정

그러나 가장 쉬운 방법은 각 게스트에 대해 올바른 네트워킹을 선택하는 것입니다. 게스트 머신을 종료한 다음 VirtualBox에서 다음을 편집하세요.귀하의 요구에 적합한 네트워킹 모드(그리드 메모).

네트워킹을 변경하는 Virtualbox 단계

기본 NAT 네트워크 사용

NAT를 사용하면 VirtualBox는 특수 IP 10.0.2.2를 루프백으로 사용합니다(적어도 저는 이것이 여전히 사실이라고 생각합니다). 따라서 루프백에서 전달된 포트는 모든 게스트가 사용할 수 있습니다. 나는 당신이 이것을 활용할 수 있어야한다고 생각합니다. NAT 네트워크를 사용하여 통신하려면 다음 중 하나가 필요합니다.

  • VBoxManage를 사용하여 NAT 전달을 설정합니다.비시스템 포트(1024–65535)더 낮은 쪽으로시스템 포트(< 1024).

    1. 이 경우 포트 2222와 같은 것을 포트 22(SSH의 기본값)로 전달합니다. 이는 또한 질문에 따라 Guest SIP 주소를 사용한다고 가정합니다 .10.0.2.15
    2. Virtualbox 호스트에서 포트 전달을 구성하고 다음을 실행하십시오.

      VBoxManage 수정vm "VM 이름" --natpf1 "guestssh,tcp,,2222,,22"

      호스트 인터페이스의 포트 2222에 도착하는 모든 TCP 트래픽은 게스트의 포트 22로 전달됩니다. 프로토콜 이름 tcp는 전달에 사용해야 하는 프로토콜을 정의하는 필수 속성입니다(udp도 사용할 수 있음). guestsh라는 이름은 순전히 설명을 위한 것이며 생략하면 자동 생성됩니다. --natpf 뒤의 숫자는 VBoxManage의 다른 부분과 마찬가지로 네트워크 카드를 나타냅니다.

    3. 추가된 규칙을 확인하세요.

      VBoxManage showvminfo myserver | grep '규칙'

    4. Guest Server호스트 루프백 매핑 및 포트 전달을 통해 연결Guest S

      neil@neil-VirtualBox$ ssh -p 2222[이메일 보호됨]

  • 대안: 변경(게스트 S)/etc/sshd_config듣다 비시스템 포트(> 1024). 그런 다음 SSH를 다시로드하십시오.

답변2

알려진 호스트 디렉터리에 포함된 모든 ECDSA 지문 키(아마도 SHA256)를 제거하기만 하면 됩니다.

  1. 달리다vi ~/.ssh/known_hosts
  2. Known_hosts 파일 내에서 주체 IP 주소와 연결된 모든 키를 삭제합니다.
  3. "Esc" 키를 누른 다음 "Shift" 키 + ":" + "x"를 입력합니다.

관련 정보