💻 macOS 서버 설치 과정 (SSH, Node.js, code-server, Caddy)
이 문서는 대부분의 서버설치 자료들이 Ubuntu 기준으로 되어 있어서 내pc에 맞도록 서버 설치 과정을 macOS (Mac Mini) 기준으로 기록한 내용입니다.
1. SSH 서비스 활성화 및 설정
1.1. 원격 로그인 (SSH) 활성화
macOS에서 SSH 서비스를 활성화합니다.
- 현재 상태 확인:(결과가 Remote Login : On이 아니면 아래 명령어로 활성화)
-
Bash
sudo systemsetup -getremotelogin - 활성화:
-
Bash
sudo systemsetup -setremotelogin on
1.2. SSH 데몬 포트 및 설정 수정
기본 SSH 포트(22)를 활성화하고, 모든 인터페이스에서 SSH 요청을 허용하도록 설정합니다.
- 설정 파일 열기:
-
Bash
sudo vi /etc/ssh/sshd_config - 수정/추가 항목:
- #Port 22의 주석(\#)을 제거하여 Port 22를 활성화합니다.
- ListenAddress 0.0.0.0를 추가합니다. (모든 인터페이스에서 SSH 요청 허용)
- 서비스 재시작:
-
Bash
sudo launchctl stop com.openssh.sshd sudo launchctl start com.openssh.sshd
1.3. 권한 설정 (Systemsetup 명령어 에러 시)
sudo systemsetup 명령어 실행 시 권한 부족 에러가 발생하면, 터미널 프로그램에 전체 디스크 접근 권한을 부여해야 합니다.
➡️ 경로: 설정 > 정보 보호 및 보안 > 전체 디스크 접근
➡️ 잠금 해제 후 터미널 프로그램을 목록에 추가합니다.
1.4. macOS 자체 방화벽 설정
macOS 방화벽 설정에서 **Remote Login (SSH)**이 수신 허용되도록 확인합니다.
➡️ 경로: 설정 > 네트워크 > 방화벽 > 옵션
➡️ 방화벽 On으로 설정하고, "모든 수신 연결 차단"은 해제합니다.
➡️ "Remote Login (SSH)" 항목이 수신 허용으로 되어 있는지 확인합니다.
2. SSH 공개키 기반 접속 설정 절차
2.1. 원격 PC (클라이언트)에서 키 생성
서버가 아닌 원격 접속할 PC에서 SSH 키를 생성합니다. ed25519 알고리즘은 보안 및 속도 효율이 좋습니다.
ssh-keygen -t ed25519 -C "your_email@example.com"
- 저장 경로 (기본값): /Users/<username>/.ssh/id_ed25519
- Passphrase (비밀번호): 입력하거나, 편의를 위해 비워둘 수 있습니다.
- 결과 파일:
- ~/.ssh/id_ed25519: 개인키 (절대 유출 금지)
- ~/.ssh/id_ed25519.pub: 공개키 (서버에 복사할 파일)
2.2. 서버에 공개키 복사
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@<맥미니_IP또는도메인>
2.3. 서버 측 SSH 데몬 설정 수정
공개키 기반 접속을 활성화하고 비밀번호 로그인을 비활성화합니다.
sudo vi /etc/ssh/sshd_config
- 항목 수정/확인:
- PubkeyAuthentication **yes**
- AuthorizedKeysFile .ssh/authorized_keys
- PasswordAuthentication **no**
- 저장 후 SSH 재시작:
-
Bash
sudo launchctl stop com.openssh.sshd sudo launchctl start com.openssh.sshd
2.4. 원격 PC에서 접속 테스트
ssh -i ~/.ssh/id_ed25519 user@<맥미니_IP또는도메인>
💡 비밀번호 없이 로그인되어야 합니다.
2.5. 보안 강화 팁
macOS에는 fail2ban이 기본적으로 없으므로, Cloudflare Tunnel 또는 pf 방화벽 규칙을 추가하여 공격 방지를 강화할 수 있습니다.
3. Node.js (nvm) 및 Gemini CLI 설치
3.1. 준비 도구 설치
brew install curl ca-certificates gnupg
3.2. nvm (Node Version Manager) 설치
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
3.3. Node.js 설치 및 버전 확인
nvm install 24
- 버전 확인:
-
Bash
node -v # "v24.11.1"가 출력되어야 합니다. nvm current # "v24.11.1"가 출력되어야 합니다. npm -v # "11.6.2"가 출력되어야 합니다.
3.4. Gemini CLI 설치
npm install -g @google/gemini-cli
4. 기타 도구 설정
4.1. deSEC 및 IP 확인
- deSEC 가입 및 도메인 설정:
- 내 아이피 확인:
4.2. VS Code Server (code-server) 설치
code-server를 설치하여 웹 브라우저 기반으로 VS Code 환경을 구축합니다.
curl -fsSL https://code-server.dev/install.sh | sh
- 서비스 실행 (선택):
- 백그라운드 서비스 및 재시작 설정:(Launchd 서비스는 http://127.0.0.1:8080에서 실행됩니다. 로그 위치: /opt/homebrew/var/log/code-server.log)
-
Bash
brew services start code-server - 서비스 없이 즉시 실행:
-
Bash
/opt/homebrew/opt/code-server/bin/code-server
- 실행 명령어:
-
Bash
code-server - 포트 설정하여 실행:
-
Bash
code-server --bind-addr 0.0.0.0:5678 - 비밀번호 설정:파일을 열고 password 항목을 작성합니다.
-
Bash
vi ~/.config/code-server/config.yaml
4.3. Caddy 설치 및 설정
Caddy는 HTTPS를 자동으로 지원하는 웹 서버입니다.
- Caddy 설치:
-
Bash
brew install caddy caddy version - 백그라운드 서비스로 실행:(컴퓨터 시작 시 Caddy가 자동으로 실행되도록 설정)
-
Bash
brew services start caddy - 설정 파일 (Caddyfile) 위치:
- Apple Silicon 기준: /opt/homebrew/etc/Caddyfile
📋 요약: SSH 공개키 접속 설정 명령어
| 단계 | 명령어 | 설명 |
'Tech > Mac OS 홈서버' 카테고리의 다른 글
| cloudflare 에서 도메인 연결하기(Onboard a domain) (0) | 2025.11.20 |
|---|---|
| 홈서버 셀프호스팅용, 도메인 싸게 구입하기 (0) | 2025.11.20 |
| mac os 맥미니 m1 서버만들기 세팅 (0) | 2025.11.14 |
| 원격으로 윈도우PC 에 ssh 접속 기본쉘 wsl.exe로 변경하기 (0) | 2025.11.14 |
| Oracle 서버세팅기록 (0) | 2025.10.11 |