Issue
Vagrant로 가상머신 부팅시 SSH auth method: private key 단계에서 멈출 때
TTOII
2022. 5. 8. 19:10
728x90
✔️ 문제 발생
vagrant up 후 SSH auth method: private key 단계에서 더 이상 넘어가지 않고 멈추거나 timeout 에러가 뜨는 문제가 발생했다.
✔️ 발생 원인
컴퓨터에 WSL 2가 설치되어 있다면 WSL 2와 Virtual Box 사이에 충돌이 발생한다.
이런 오류는 Hyper-V 때문에 발생하는 것으로 Hyper-V 관련 설정을 제거 하면 Virtual Box가 정상 동작한다.
✔️ 문제 해결
기존에 WSL 2를 사용하여 Docker Desktop을 가동했었다면 이 방법은 추천하지 않는다.
아마 문제 해결 후 재부팅을 하면 다음과 같은 Docker Desktop 알림창이 뜰 것이다.
나는 WSL 2보다 Virtual Box를 더 자주 사용하고 있어 Hyper-V를 사용하지 않는 것을 택했다.
다음 Powershell 스크립트(관리자용 Powershell)를 사용하여 WSL을 설치하고 Docker Desktop을 사용하기 전에 컴퓨터를 다시 시작합니다.
Enable-WindowsOptionFeature -Online -FeatureName $("VirtualMachinePlatform", Microsoft-windows-Subsystem-Linux")
해당 스크립트를 관리자 권한으로 실행한 PowerShell에서 실행하면 Windows 기능 끄기/켜기에서 가상 머신 플랫폼 기능과 Linux용 Windows 하위 시스템을 사용하기로 변경한다.
Windows 기능 켜기/끄기 를 연다.
- Linux용 Windows 하위 시스템 (참고로 나는 이 기능은 켜져 있었지만 Virtual Box 가 정상 작동했다.)
- Hyper-V
- Windows 하이퍼바이저 플랫폼
- 가상 머신 플랫폼
세가지 항목의 기능을 해제(끄기)한다.
이후 컴퓨터를 재부팅한뒤 다시 vagrant up 해본다.
PS C:\Users\Shinsohui\vagrant\container> vagrant up
Bringing machine 'docker' up with 'virtualbox' provider...
==> docker: Checking if box 'ubuntu/focal64' version '20220427.0.0' is up to date...
==> docker: Clearing any previously set forwarded ports...
==> docker: Clearing any previously set network interfaces...
==> docker: Preparing network interfaces based on configuration...
docker: Adapter 1: nat
docker: Adapter 2: hostonly
==> docker: Forwarding ports...
docker: 22 (guest) => 2222 (host) (adapter 1)
==> docker: Running 'pre-boot' VM customizations...
==> docker: Booting VM...
==> docker: Waiting for machine to boot. This may take a few minutes...
docker: SSH address: 127.0.0.1:2222
docker: SSH username: vagrant
docker: SSH auth method: private key
==> docker: Machine booted and ready!
[docker] GuestAdditions 6.1.32 running --- OK.
==> docker: Checking for guest additions in VM...
==> docker: Setting hostname...
==> docker: Configuring and enabling network interfaces...
==> docker: Mounting shared folders...
docker: /vagrant => C:/Users/Shinsohui/vagrant/container
==> docker: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> docker: flag to force provisioning. Provisioners marked to run always will still run.
해당 내용이 출력되며 정상적으로 가상머신에 접속할 수 있게된다.
728x90