맥미니에 Ubuntu 서버 설치하기: Parallels VM을 처음부터 만드는 방법

맥미니와 설치 화면, USB 저장장치를 함께 배치한 Ubuntu Server 설치 대표 이미지

작성자

카테고리:

맥미니에 WordPress 서버를 만들면서 처음 헷갈린 것은 Linux 명령어가 아니었다. 지금 보고 있는 검은 화면이 Mac 터미널인지, Ubuntu 가상머신 화면인지 구분하는 일이 더 어려웠다.

같은 cd나 sudo도 어느 화면에서 실행하느냐에 따라 전혀 다른 컴퓨터에 적용된다. 비밀번호를 입력해도 화면에 글자나 별표가 나타나지 않아, 입력이 안 되는 줄 알고 기다리기도 쉽다.

이번 글에서는 WordPress를 설치하기 전 단계까지만 진행한다. 끝까지 따라 하면 다음 상태가 된다.

  • 맥미니 안에서 Ubuntu Server 가상머신이 실행된다.
  • Ubuntu가 ARM64로 설치됐는지 직접 확인할 수 있다.
  • Shared Network(NAT)를 통해 VM이 인터넷에 연결된다.
  • Mac에서 Ubuntu로 SSH 접속할 수 있다.
  • 비밀번호 대신 전용 SSH 키로 접속할 수 있다.
  • 공유기 포트포워딩은 만들지 않는다.

Docker와 WordPress는 2편에서 설치한다. 한 번에 다 진행하지 않는 이유는 간단하다. Ubuntu 설치와 SSH가 확실히 되는 상태를 먼저 만들어야, 다음 단계에서 문제가 생겨도 원인을 좁힐 수 있기 때문이다.

이 글은 M1·M2·M3·M4 같은 Apple Silicon Mac을 기준으로 한다. Intel Mac은 ISO 종류부터 다르므로 그대로 따라 하면 안 된다.

홈서버 설치 시리즈

  1. 이번 글: Parallels에 Ubuntu Server VM 만들기
  2. 다음 글: Ubuntu에 Docker로 WordPress·MariaDB 설치하기
  3. 이어지는 글: Cloudflare Tunnel로 공개하고 관리자 경로 보호하기
  4. 마지막 글: WP-Cron을 systemd로 바꾸고 Cloudflare R2에 백업하기
맥미니 WordPress 홈서버 4편 설치 순서

그림 1. Ubuntu VM부터 백업 검증까지 한꺼번에 진행하지 않고, 각 단계의 성공을 확인한 뒤 다음 편으로 넘어간다.

전체 구조와 장단점부터 보고 싶다면 맥미니를 24시간 홈서버로 써도 될까?를 먼저 읽으면 된다.

먼저 구분할 것: 터미널은 두 개다

설치를 시작하기 전에 아래 표를 한 번 보고 가는 게 좋다.

글의 표시실제 실행 장소주로 하는 일
Mac에서 실행macOS의 터미널 또는 Codex 터미널ISO 확인, SSH 접속, 키 생성
Ubuntu VM에서 실행Parallels 창 안의 Ubuntu 콘솔Ubuntu 상태 확인, Linux 설정
SSH로 Ubuntu에서 실행Mac 터미널에서 Ubuntu에 접속한 화면화면은 Mac에 있지만 명령은 Ubuntu에서 실행

프롬프트 모양만 보고 판단하면 틀릴 수 있다. 헷갈릴 때는 아래 명령부터 실행한다.

uname -s
pwd

대체로 다음처럼 구분된다.

결과현재 위치
Darwin, /Users/...Mac
Linux, /home/...Ubuntu

앞으로 나오는 <VM_IP>와 <ADMIN_USER>는 예시가 아니라 바꿔 넣을 자리다. 실제 명령에서는 자신이 확인한 값으로 바꾸고 꺾쇠괄호도 제거해야 한다.

준비물

  • Apple Silicon 맥미니
  • 현재 버전의 Parallels Desktop
  • Ubuntu Server 24.04.4 LTS ARM64 ISO
  • 안정적인 인터넷 연결
  • Ubuntu 계정에 사용할 사용자명과 긴 비밀번호
  • VM 파일을 보관할 Mac의 로컬 저장 공간

이번에 만든 VM의 설정은 다음과 같다.

항목이번 구성값
CPU4 vCPU
메모리8GB
가상 디스크64GB 확장형
네트워크Shared Network(NAT)
운영체제Ubuntu Server 24.04 LTS ARM64

이 숫자는 WordPress의 공식 최소 사양이나 모든 맥미니에 맞는 정답이 아니다. 이번 구축에 사용한 값이다. Ubuntu가 안내하는 ISO 설치 권장 최소치는 이보다 낮지만, Docker·WordPress·DB와 백업 파일까지 둘 여유를 고려해 넉넉하게 잡았다. Parallels가 표시하는 권장 범위와 Mac에서 동시에 실행할 작업도 함께 봐야 한다.

1. Mac이 Apple Silicon인지 확인하기

먼저 Mac 터미널을 연다.

[Mac에서 실행]

uname -m

Apple Silicon Mac이라면 다음과 같이 나온다.

arm64

x86_64가 나오면 Intel Mac이다. 이 글에서 사용하는 ARM64 ISO를 그대로 선택하면 안 된다.

2. Ubuntu Server ARM64 ISO 받기

Apple Silicon의 Parallels에서는 ARM용 게스트 운영체제를 사용해야 한다. Ubuntu 공식 릴리스 페이지에서 다음 파일을 받는다.

ubuntu-24.04.4-live-server-arm64.iso

파일명에서 확인할 부분은 server와 arm64다.

  • server: 그래픽 데스크톱이 기본 포함되지 않은 서버 설치 이미지
  • arm64: Apple Silicon에서 사용할 ARM64 이미지

amd64, Raspberry Pi용 사전 설치 이미지, arm64+largemem 파일과 혼동하지 않는다. 이번 구성은 이름 그대로 끝나는 일반 live-server-arm64.iso를 사용했다.

내려받은 파일의 SHA-256 확인

Ubuntu 다운로드 폴더에는 ISO와 함께 SHA256SUMS 파일이 제공된다. ISO가 전송 중 손상되지 않았는지 확인할 수 있다.

SHA256SUMS도 같은 공식 릴리스 페이지에서 내려받은 뒤 두 파일을 Mac의 다운로드 폴더에 둔다.

[Mac에서 실행]

cd "$HOME/Downloads"

shasum -a 256 ubuntu-24.04.4-live-server-arm64.iso
grep 'ubuntu-24.04.4-live-server-arm64.iso' SHA256SUMS

두 줄 앞부분의 64자리 값이 같아야 한다. 다르면 ISO를 사용하지 말고 공식 페이지에서 다시 받는다.

이 비교는 파일 손상 여부를 확인하는 기본 절차다. 출처 확인까지 엄격하게 하려면 Ubuntu가 함께 제공하는 SHA256SUMS.gpg 서명 검증 절차가 추가로 필요하다.

3. Parallels에서 새 VM 만들기

Parallels Desktop을 열고 Control Center에서 새 가상머신 만들기를 시작한다.

  1. 오른쪽 위의 + 버튼을 누른다.
  2. Install Windows, Linux, or macOS from an image file을 선택한다.
  3. Continue를 누르고 앞에서 받은 ARM64 ISO를 지정한다.
  4. 설치 전 설정을 변경하는 항목을 켠다.
  5. VM 이름과 저장 위치를 정한 뒤 생성한다.

Parallels 버전과 표시 언어에 따라 버튼 이름이나 위치가 조금 다를 수 있다. ISO를 자동으로 찾지 못하면 수동 선택 기능을 사용해도 된다. 이때 파일명 끝이 arm64.iso인지 다시 확인한다.

VM 이름은 역할을 알아보기 쉽게 ttakdap-ubuntu로 정했다. VM 파일은 iCloud Drive나 다른 동기화 폴더가 아니라 Mac의 로컬 저장 공간에 뒀다.

예시는 다음과 같다.

~/Parallels

VM은 실행 중 계속 바뀌는 큰 가상 디스크 파일이다. 운영용 VM을 동기화 폴더 밖에 두면 동기화 충돌과 불필요한 업로드를 피하기 쉽다.

4. CPU·메모리·디스크 설정하기

Ubuntu 설치를 시작하기 전에 VM 설정을 연다. 이미 켜져 있다면 일시 정지가 아니라 완전 종료한 뒤 바꾼다.

CPU와 메모리

이번 구성은 4 vCPU와 메모리 8GB를 할당했다. Parallels 에디션 비교표에 표시된 Standard Edition의 VM당 상한에도 맞는 값이다.

Mac 전체 메모리가 8GB인데 VM에 8GB를 모두 주면 안 된다. macOS가 사용할 몫도 남겨야 한다. Parallels가 보여주는 권장 범위를 벗어나 무작정 많이 할당한다고 항상 빨라지는 것도 아니다.

현재 공식 안내의 설정 경로는 다음과 같다.

Actions → Configure → Hardware → CPU & Memory

가상 디스크

가상 디스크 상한은 64GB로 두고 확장형 디스크를 사용했다. 확장형은 VM을 만들자마자 Mac 저장 공간 64GB를 전부 차지하는 방식은 아니며, Ubuntu에서 사용하는 양에 따라 파일이 커진다.

하지만 상한이 여유 공간을 만들어 주는 것은 아니다. WordPress 사진과 백업이 늘면 Mac과 VM 양쪽의 실제 사용량을 계속 확인해야 한다.

네트워크

네트워크는 Parallels의 기본 NAT 방식인 Shared Network를 선택했다.

Actions → Configure → Hardware → Network → Shared Network

Shared Network에서는 VM이 Mac의 연결을 공유해 인터넷으로 나갈 수 있다. 반대로 외부 기기가 VM으로 직접 들어오게 하려면 별도 포트포워딩이 필요하다.

이번 서버는 뒤에서 Cloudflare Tunnel을 사용하므로 다음 설정을 만들지 않는다.

  • 공유기 80·443 포트포워딩
  • Parallels VM 포트포워딩
  • 브리지 네트워크

공인 고정 IP도 필요하지 않다. Tunnel 연결은 Ubuntu 쪽에서 먼저 외부로 나가기 때문이다.

Mac과 VM의 공유 기능

초기 작업이 끝난 뒤에는 다음 기능을 끈다.

  • Mac 공유 폴더와 공유 프로필
  • Mac 볼륨 자동 매핑
  • 클립보드 동기화

공유 기능을 켜면 VM에서 Mac 파일이나 클립보드 내용에 접근할 수 있다. 공개 서버용 VM에 꼭 필요한 기능이 아니므로 공격면을 줄이기 위한 선택이다. 이는 Parallels의 필수 설정이 아니라 이번 서버의 운영 방침이다.

Parallels에서 실제 WordPress Ubuntu VM의 CPU·메모리·디스크·공유 네트워크 설정을 확인한 화면

그림 2. 운영 중인 WordPress VM에서 값을 바꾸지 않고 현재 설정을 확인했다. 프로세서 4개, 메모리 8GB, 가상 디스크 64GB, 공유 네트워크(NAT)를 사용 중이다.

5. Ubuntu Server 설치 화면 따라가기

VM을 시작하면 Ubuntu Server 설치 프로그램이 열린다. 화면 문구는 ISO 개정판에 따라 조금 달라질 수 있지만 공식 설치 흐름은 다음과 같다.

Language → Keyboard → Source → Network → Proxy → Mirror
→ Storage → Profile setup → SSH Setup → Featured Server Snaps
→ 설치 → Reboot

언어와 키보드

원하는 언어와 실제 키보드에 맞는 배열을 선택한다. 오류 메시지를 검색하기 쉽게 설치 화면은 영문으로 진행해도 된다. 키보드 배열이 틀리면 이후 비밀번호 입력에서 특수문자가 다르게 들어갈 수 있다.

설치 프로그램 업데이트

새 설치 프로그램을 받을 수 있다는 안내가 나오면 네트워크 상태를 확인한 뒤 업데이트할 수 있다. 화면이 다시 시작되더라도 ISO 자체를 다시 받는 과정은 아니다.

설치 유형

초보자는 일반 Ubuntu Server를 선택한다.

Ubuntu Server (minimized)는 그래픽 화면만 없는 정도가 아니라, 설명서·번역·편집기처럼 사람이 직접 관리할 때 유용한 도구를 더 줄인 설치 유형이다. Server ISO 자체가 이미 GUI 없는 서버판이므로 이 글에서는 일반 Ubuntu Server를 사용한다.

네트워크

Shared Network의 DHCP로 주소와 기본 경로가 잡혀 있으면 그대로 진행한다. 이 단계에서 외부 공개용 고정 IP를 만들 필요는 없다.

프록시와 미러

회사나 학교에서 별도의 프록시 주소를 받은 경우가 아니라면 Proxy 입력칸은 비워 둔다. Mirror 검사가 성공하면 기본값을 유지한다.

디스크 설정 — 가장 주의할 단계

새 VM의 빈 가상 디스크 하나만 보이고 크기가 앞에서 설정한 값과 맞는지 확인한 뒤 Use an entire disk를 선택한다.

경고
설치 대상은 반드시 Parallels가 만든 약 64GB 가상 디스크여야 한다. 디스크가 여러 개 보이거나 용량이 예상과 다르면 확정하지 말고 뒤로 돌아간다. VM에 외장 디스크를 연결해 둔 상태라면 특히 주의한다.

수동 파티션은 이번 구성에서 사용하지 않았다. 기본 LVM 선택은 그대로 둘 수 있다. 디스크 암호화는 보안에 도움이 되지만, LUKS 암호를 켜면 VM을 재부팅할 때마다 콘솔에서 암호를 넣어야 하므로 무인 복구 방식과 충돌할 수 있다. 선택하려면 이 운영상 차이를 먼저 이해해야 한다.

사용자 계정 만들기

Profile setup 화면에서 이름, 서버 이름, 사용자명, 비밀번호를 만든다.

  • 서버 이름: 예를 들어 ttakdap-ubuntu
  • 사용자명: <ADMIN_USER> 대신 자신이 정한 이름
  • 비밀번호: 다른 사이트에서 쓰지 않는 긴 비밀번호

이때 만든 첫 사용자는 sudo 명령을 사용할 수 있는 관리자다. 나중에 SSH 키를 등록하더라도 sudo 작업에는 이 암호가 필요할 수 있으므로 비밀번호 관리자에 보관한다.

사용자명과 서버 이름은 터미널 프롬프트와 화면 캡처에 계속 나타난다. 블로그에 실제 화면을 올릴 때는 가리는 편이 좋다.

OpenSSH Server 선택

SSH Setup 화면에서 Install OpenSSH server를 선택한다.

이 항목을 빼면 설치 후 Mac 터미널에서 Ubuntu에 바로 접속할 수 없다. GitHub나 Launchpad의 SSH 키를 가져오는 기능은 이번 절차에서 사용하지 않고, 설치가 끝난 뒤 Mac에서 전용 키를 직접 만든다.

Featured Server Snaps

이번 구성에 필요한 항목은 없다. 아무것도 선택하지 않고 진행한다. Docker는 2편에서 Docker 공식 저장소를 통해 설치한다.

설치가 끝나면 Reboot Now를 선택한다. 설치 미디어를 제거하라는 안내가 나오면 Parallels의 CD/DVD 설정에서 ISO를 분리하고 Enter를 누른다. Parallels가 자동으로 분리했다면 별도로 조작할 필요가 없다.

재부팅 뒤에도 설치 화면으로 돌아오면 VM을 끄고 ISO 연결 여부부터 확인한다.

6. Ubuntu에 처음 로그인하기

재부팅이 끝나면 Ubuntu 로그인 화면이 나온다. 설치 중 만든 사용자명과 비밀번호를 입력한다.

비밀번호가 아무것도 표시되지 않는 것은 정상이다

Ubuntu 로그인, sudo, ssh에서 비밀번호를 입력하면 글자·점·별표가 모두 보이지 않을 수 있다. 커서도 그대로인 것처럼 보이지만 입력은 되고 있다. 비밀번호를 누른 뒤 Enter를 입력한다.

별도의 비밀번호 팝업이 뜨는 것도 아니다. 아래처럼 터미널 줄에 요청이 보인다.

[sudo] password for <ADMIN_USER>:

정상 여부는 로그인 뒤 다음 명령으로 확인할 수 있다.

[Ubuntu VM에서 실행]

sudo id -u

비밀번호를 입력한 뒤 아래 값이 나오면 관리자 권한이 정상이다.

0

직전에 sudo 인증을 했다면 일정 시간 다시 묻지 않을 수도 있다. Codex 실행 화면에서 대화형 입력이 필요한 명령이 멈춘 것처럼 보일 때는 비밀번호를 채팅에 붙여 넣지 말고 Parallels의 Ubuntu 콘솔에서 실행한다.

7. 설치 결과 확인하기

아래 명령을 한꺼번에 복사하지 말고 하나씩 실행하면서 결과를 본다.

Ubuntu 버전과 CPU 구조

[Ubuntu VM에서 실행]

cat /etc/os-release
uname -m

확인할 값은 다음과 같다.

VERSION_ID="24.04"
aarch64

ISO 파일명은 arm64, Linux 명령 결과는 aarch64라고 나오지만 여기서는 같은 CPU 계열을 뜻한다.

VM 자원과 가상 디스크

[Ubuntu VM에서 실행]

nproc
free -h
lsblk -o NAME,SIZE,TYPE,MOUNTPOINTS

이번 구성이라면 CPU 개수는 4, 메모리는 약 8GB, 디스크는 약 64GB로 보여야 한다. 파일시스템과 단위 차이 때문에 화면의 숫자가 설정값과 정확히 같지 않을 수 있다.

네트워크와 SSH

[Ubuntu VM에서 실행]

ip route
hostname -I
systemctl is-active ssh

정상 기준은 다음과 같다.

  • ip route에 default via로 시작하는 기본 경로가 있다.
  • hostname -I에 VM의 내부 IPv4 주소가 나온다.
  • SSH 서비스 결과가 active다.

여기서 확인한 IPv4 주소를 뒤의 <VM_IP> 대신 사용한다. 예제 IP를 추측해서 넣지 않는다.

Mac에서 실제 Ubuntu VM의 버전, 아키텍처, 자원과 SSH 상태를 확인한 결과

그림 3. Mac에서 현재 VM을 읽기 전용으로 확인한 결과다. Ubuntu 24.04.4 LTS, aarch64, 4 vCPU, 7.7GiB 메모리, 64GB 가상 디스크와 SSH active 상태를 확인했으며 사용자명·호스트명·내부 주소는 표시하지 않았다.

8. Mac에서 Ubuntu로 처음 SSH 접속하기

Parallels의 Ubuntu 콘솔은 그대로 열어 둔다. SSH 설정이 잘못됐을 때 돌아올 수 있는 복구 화면이기 때문이다.

새 Mac 터미널을 열고 아래 두 값을 자신이 만든 사용자명과 방금 확인한 VM 주소로 바꾼다. 꺾쇠괄호는 넣지 않는다.

[Mac에서 실행]

VM_IP="<VM_IP>"
ADMIN_USER="<ADMIN_USER>"

예를 들어 VM 주소가 192.0.2.10, 사용자명이 server-admin이라면 변수 오른쪽에 그 값만 넣는 식이다. 이 예시 주소는 문서용이므로 그대로 사용하지 않는다.

접속한다.

ssh "$ADMIN_USER@$VM_IP"

처음 접속하면 서버 지문을 신뢰할지 묻는다. 주소가 방금 Ubuntu에서 확인한 VM 주소인지 먼저 본다.

더 엄격하게 확인하려면 Ubuntu 콘솔에서 아래 명령을 실행해 표시되는 SHA-256 지문과 Mac의 SSH 화면을 비교한다.

[Ubuntu VM에서 실행]

sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

일치하면 Mac의 질문에 yes를 입력한다. 이어서 Ubuntu 사용자 비밀번호를 입력한다. 여기에서도 입력 문자는 보이지 않는다.

접속한 다음 위치를 확인한다.

uname -s
pwd

결과가 Linux와 /home/<ADMIN_USER> 형태라면 Mac 터미널을 통해 Ubuntu에 들어온 것이다.

접속을 끝낼 때는 다음을 입력한다.

exit

9. 전용 SSH 키 만들고 등록하기

다음 글에서 설치 명령을 안전하게 실행하려면 전용 SSH 키를 먼저 준비하는 편이 좋다. 개인키는 Mac에만 두고, Ubuntu에는 .pub으로 끝나는 공개키만 등록한다.

같은 이름의 키가 있는지 먼저 확인

[Mac에서 실행]

ls -l "$HOME/.ssh/ttakdap_vm" "$HOME/.ssh/ttakdap_vm.pub"

두 파일이 이미 있다면 덮어쓰지 않는다. 기존 키가 어떤 용도인지 확인한 뒤 다른 파일명을 사용한다.

파일이 없다는 메시지가 나올 때만 새 키를 만든다.

ssh-keygen -t ed25519 \
  -f "$HOME/.ssh/ttakdap_vm" \
  -C "mac-mini-wordpress-vm"

키 암호를 설정하면 개인키가 유출됐을 때 한 겹 더 보호할 수 있다. 다만 아래의 비대화형 접속 시험을 하려면 먼저 키를 macOS의 SSH 에이전트에 등록해야 한다.

ssh-add --apple-use-keychain "$HOME/.ssh/ttakdap_vm"

사용 중인 macOS에서 --apple-use-keychain 옵션을 지원하지 않는다는 메시지가 나오면 ssh-add "$HOME/.ssh/ttakdap_vm"로 현재 로그인 세션에만 등록할 수 있다. 자동 운영에 사용할 키는 편의와 보안, Mac 계정과 디스크의 보호 상태를 함께 고려해 관리한다.

공개키를 Ubuntu에 등록

앞에서 만든 변수값이 같은 Mac 터미널에 남아 있는지 확인한다.

printf 'user=%s\nvm=%s\n' "$ADMIN_USER" "$VM_IP"

정확하면 공개키를 등록한다.

ssh "$ADMIN_USER@$VM_IP" \
  'umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys' \
  < "$HOME/.ssh/ttakdap_vm.pub"

이 명령은 마지막으로 Ubuntu 비밀번호를 물을 수 있다. 개인키 내용은 VM이나 채팅에 붙여 넣지 않는다.

Ubuntu 계정 비밀번호 대신 키로 접속되는지 확인

새 Mac 터미널을 하나 더 열고 변수 두 개를 다시 설정한다. 그다음 아래 명령을 실행한다.

ssh -i "$HOME/.ssh/ttakdap_vm" \
  -o IdentitiesOnly=yes \
  -o BatchMode=yes \
  "$ADMIN_USER@$VM_IP" \
  'id -un'

정상이라면 자신이 만든 Ubuntu 사용자명이 출력된다. BatchMode=yes에서는 Ubuntu 계정 비밀번호 입력으로 넘어가지 않으므로, 실패하면 키 등록이나 SSH 에이전트 준비가 아직 끝난 것이 아니다.

비밀번호 SSH 로그인을 끄는 작업은 지금 하지 않는다. Parallels 콘솔을 열어 둔 채 키 접속을 확실히 확인한 뒤, 2편의 방화벽·SSH 강화 단계에서 진행한다.

Mac에서 BatchMode로 Ubuntu VM의 SSH 키 전용 접속 성공을 확인한 결과

그림 4. BatchMode=yes로 비밀번호 입력을 허용하지 않은 상태에서 전용 SSH 키 접속이 성공했다. 사용자명·호스트명·VM 주소·키 내용은 화면에 넣지 않았다.

10. 공유 기능을 끄고 VM 재부팅 확인하기

SSH 키 접속까지 성공했다면 서버 운영에 쓰지 않을 공유 폴더·공유 프로필·클립보드 동기화를 Parallels 설정에서 끈다. 에디션에 따라 보안 격리 설정이 따로 보일 수 있으므로, 필요한 Mac·VM 연동 기능이 없는지 먼저 확인하고 적용한다.

그다음 Ubuntu VM 안에서 한 번 재부팅한다.

[Ubuntu VM 또는 SSH로 Ubuntu에서 실행]

sudo reboot

SSH 연결은 끊기는 것이 정상이다. Ubuntu 로그인 화면이 다시 나타난 뒤 Mac에서 키 접속 명령을 다시 실행해 로그인되는지 확인한다.

이 시험은 Ubuntu VM 재부팅 확인일 뿐이다. 맥미니 전원을 껐다 켠 뒤 Parallels와 VM이 사용자 로그인 없이 살아나는지 확인한 정전 복구 시험은 아니다.

1편 완료 점검표

  • ☐ Mac의 uname -m이 arm64다.
  • ☐ Ubuntu Server ARM64 ISO의 SHA-256이 공식 목록과 일치한다.
  • ☐ VM은 4 vCPU·8GB·64GB 확장형·Shared Network로 설정했다.
  • ☐ 설치 대상이 Parallels의 가상 디스크인지 확인했다.
  • ☐ 일반 Ubuntu Server와 OpenSSH Server를 설치했다.
  • ☐ Ubuntu의 VERSION_ID가 24.04다.
  • ☐ Ubuntu의 uname -m이 aarch64다.
  • ☐ CPU·메모리·디스크가 설정한 범위로 보인다.
  • ☐ 기본 네트워크 경로가 있고 SSH 서비스가 active다.
  • ☐ Mac에서 VM으로 SSH 접속된다.
  • ☐ BatchMode=yes로 전용 SSH 키 접속을 확인했다.
  • ☐ VM 재부팅 뒤에도 키 접속이 된다.
  • ☐ 공유기와 Parallels에 80·443 포트포워딩을 만들지 않았다.
  • ☐ 아직 Docker·WordPress·Cloudflare Tunnel은 설치하지 않았다.

자주 막히는 문제

비밀번호를 입력해도 아무것도 안 보인다

Linux 터미널의 정상 동작이다. 별표도 표시되지 않는다. 비밀번호를 입력한 뒤 Enter를 누른다.

정말 sudo 인증이 되는지 별도로 보고 싶다면 Ubuntu 콘솔에서 실행한다.

sudo id -u

정상 결과는 0이다.

VM이 설치 화면으로 계속 돌아온다

Ubuntu ISO가 가상 CD/DVD에 계속 연결돼 있는지 확인한다. VM을 완전히 끈 뒤 ISO 연결을 해제하고 다시 시작한다.

uname -m이 x86_64로 나온다

이 글의 Apple Silicon ARM64 구성과 다르다. 선택한 VM과 ISO 파일명을 다시 확인한다.

SSH 접속이 거부된다

Ubuntu 콘솔에서 아래 결과를 확인한다.

systemctl is-active ssh
hostname -I
ip route
  • SSH가 active인가?
  • Mac에서 입력한 VM 주소가 현재 주소와 같은가?
  • Parallels 네트워크가 Shared Network인가?

설치 중 OpenSSH Server를 선택하지 않았다면 Ubuntu 콘솔에서 인터넷 연결을 확인한 뒤 설치한다.

sudo apt update
sudo apt install openssh-server

SSH 키 접속이 Permission denied로 끝난다

Ubuntu 콘솔에서 권한을 바로잡는다.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

그다음 Mac에서 BatchMode=yes 확인 명령을 다시 실행한다. 그래도 안 되면 공개키가 현재 Ubuntu 사용자의 authorized_keys에 들어갔는지 확인한다. 개인키를 VM으로 복사해서 해결하려고 하면 안 된다.

CPU나 메모리 설정을 바꿀 수 없다

VM이 실행 또는 일시 정지 상태일 수 있다. Ubuntu에서 정상 종료한다.

sudo poweroff

Parallels에서 VM이 완전히 꺼진 것을 확인한 뒤 설정을 다시 연다.

Parallels Tools 설치 안내가 나온다

Parallels Tools는 Linux VM에서 자동 설치되는 경우가 많다. SSH로 운영하는 WordPress 서버 자체는 화면 해상도·공유 폴더·클립보드 기능에 의존하지 않는다. 자동 설치가 안 됐더라도 Ubuntu와 SSH 확인부터 끝낼 수 있다.

공유 기능이 꼭 필요하다면 Parallels의 Actions → Install Parallels Tools 안내를 따른다. 서버 운영 준비가 끝난 뒤에는 사용하지 않는 공유 기능을 다시 끈다.

다음 글에서 할 일

Ubuntu VM과 SSH 준비는 여기까지다. 2편에서는 현재 Mac에서 편집 중인 배포 파일, VM에 임시로 옮긴 파일, 실제 서비스가 실행되는 파일을 먼저 구분한다. 이 구분을 하지 않으면 ‘소스 디렉터리를 변경하라’는 메시지만 보고 비밀번호 입력을 기다리기 쉽다.

다음 글의 목표는 다음과 같다.

  1. 비밀값이 제거된 공개용 설치 묶음 준비
  2. Mac에서 Ubuntu VM으로 파일 전달
  3. Mac의 실제 관리 주소 확인
  4. Docker Engine과 Compose 설치
  5. MariaDB와 WordPress 컨테이너 분리
  6. 파일 기반 DB secret 생성
  7. UFW와 SSH 키 전용 로그인 적용
  8. 외부 공개 전 내부 상태 검사

다음 글: Ubuntu에 Docker로 WordPress 설치하기

공식 참고 자료