먼저 Host PC 에서 Virtual Box 내부의 sshd 와 연결을 위한 포트포워딩을 확인해줍니다.
만약 포트 포워딩 규칙
에 아무것도 없다면 하나를 추가해주세요.
포트 포워딩 규칙
우측 상단에 보면 초록색 플러스 버튼이 보이시죠?
그걸 클릭새로 만들면 됩니다.
그리고 게스트 포트
는 (일반적으로) 22 로 설정하면 되고,
호스트 포트
는 원하시는 번호를 매겨주세요.
저는 well-known port 를 피해서 설정하기 위해 8100 번을 지정했습니다.
주의! well-known port 는 피해서 설정합시다!
0번 ~ 1023번 포트는 잘 알려진 포트 (well-known port) 이므로 웬만하면
쓰지 않는 게 좋습니다. 여러분들도 꼭 1024 이상을 쓰세요!
이후에 ssh {계정명}@127.0.0.1 -p {호스트 포트번호}
로 연결을 테스트 해보세요.
안되면 다음 목차를 계속 확인해주세요.
이번에는 VirtualBox 에 설치한 Ubuntu24.04 에 접속하고,
먼저 sshd 가 현재 설치 및 기동되고 있는지 확인해봅니다.
sudo systemctl list-unit-files | grep ssh
만약에 위처럼 검색되지 않는다면 ssh 를 설치해줍니다.
sudo apt update
sudo apt install ssh
설치 후에 systemctl status
를 통해서 현재 구동 상태인지 확인합니다.
sudo systemctl status sshd
만약에 Active: active (running)
이라고 나오지 않는다면
아래처럼 systemctl 명령어를 입력해주세요.
sudo systemctl start sshd # 지금 바로 sshd 실행시키기
sudo systemctl enable sshd # reboot 시 자동으로 실행되도록 하기
여기서 신규로 설치를 끝내신 분들은 다음 3번 목차까지 진행해주세요!
VirtaulBox Ubunutu24.04 에 ssh 가 설치는 되어있지만,
설정을 제대로 안하면 외부에서 접근이 안됩니다.
Ubunutu24.04 에 접속하여 아래처럼 명령어를 설정파일 수정을 시작해줍니다.
sudo vim /etc/ssh/sshd_config
그리고 아래 그림처럼 해주시면 됩니다.
PermitRootLogin prohibit-password
: 주석해제 및 설정 변경 (선택)PermitRootLogin yes
로 수정PermitRootLogin prohibit-password
설정 PasswordAuthentication yes
: 주석 해제 (필수)
KbdInteractiveAuthentication no
주석 처리 (필수) - 참고링크
이후에 다음과 같이 명령어를 실행합니다.
sudo /etc/init.d/ssh restart
# 또는 sudo systemctl restart sshd
# 이후 가볍게 systemctl status sshd 로 재대로 기동됐는지 확인해줍니다.
여기까지만 하고 host pc 에서 ssh 연결을 테스트해보세요!
만약 그래도 안되면 마지막 목차를 확인해주세요.
이게 의외로 잘 놓치는 부분인데요, 기존에 저희가 Virtual Box
에서
포트포워딩 규칙 지정시 사용했던 호스트 포트
번호가 Host PC
상에서
이미 사용하던 포트번호면 문제가 발생합니다.
예를 들어서 VirtualBox
포트포워딩 규칙에서 지정한 호스트 포트 번호
가
22번
이라고 가정해보죠.
그리고나서 해당 포트 번호를 정말 VirtualBox Process
가 사용 중인지 검색해봅니다.
참고로 전 Window 사용자여서 powershell 을 통해서 아래 명령어를 실행했습니다.
# 검색 시작. 2번째 열에 나오는 것이 정확히 findstr 과 동일한 항목을 찾으세요.
netstat -ano | findstr ":22"
# 2번째 열(= column) 에 해당하는 것 중에 0.0:0:0:22 (또는 127.0.0.1:22)
# 가 존재할 겁니다. 이 값을 갖는 row 의 맨끝 번호가 PID 입니다.
# 해당 PID 값으로 프로세스 명을 조회합니다.
Get-Process -Id {PID}
음... 저는 VM 과 wslrelay 가 서로 22번 포트를 Listening 하는 상태가 확인됩니다.
이러면 ssh 접속이 안될 확률이 높습니다.
이런 경우에는 VirtualBox
의 포트포워딩 규칙의 호스트 포트번호를
다른 걸로 바꾸면 문제가 간단하게 해결됩니다.
저는 호스트 포트(22 -> 8100
)으로 바꿔주고
중요!
0번 ~ 1023번
포트는잘 알려진 포트 (well-known port)
이므로 웬만하면
쓰지 않는 게 좋습니다. 웬만하면1024
이상의 포트 번호를 사용하세요 😊
다시 포트번호 사용 Process 를 검색해보면?
netstat 으로 하나의 row 만 검색이 되고,
ProcessName
이 정확히 VirtualBoxVM
인 것을 확인했습니다.
이후에 ssh 명령어를 실행하면 제대로 접속되는 것을 확인할 수 있었습니다.