반응형

💻 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 알고리즘은 보안 및 속도 효율이 좋습니다.

Bash
 
ssh-keygen -t ed25519 -C "your_email@example.com"
  • 저장 경로 (기본값): /Users/<username>/.ssh/id_ed25519
  • Passphrase (비밀번호): 입력하거나, 편의를 위해 비워둘 수 있습니다.
  • 결과 파일:
    • ~/.ssh/id_ed25519: 개인키 (절대 유출 금지)
    • ~/.ssh/id_ed25519.pub: 공개키 (서버에 복사할 파일)

2.2. 서버에 공개키 복사

Bash
 
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@<맥미니_IP또는도메인>

2.3. 서버 측 SSH 데몬 설정 수정

공개키 기반 접속을 활성화하고 비밀번호 로그인을 비활성화합니다.

Bash
 
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에서 접속 테스트

Bash
 
ssh -i ~/.ssh/id_ed25519 user@<맥미니_IP또는도메인>

💡 비밀번호 없이 로그인되어야 합니다.

2.5. 보안 강화 팁

macOS에는 fail2ban이 기본적으로 없으므로, Cloudflare Tunnel 또는 pf 방화벽 규칙을 추가하여 공격 방지를 강화할 수 있습니다.


3. Node.js (nvm) 및 Gemini CLI 설치

3.1. 준비 도구 설치

Bash
 
brew install curl ca-certificates gnupg

3.2. nvm (Node Version Manager) 설치

Bash
 
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

3.3. Node.js 설치 및 버전 확인

Bash
 
nvm install 24
  • 버전 확인:
  • Bash
     
    node -v # "v24.11.1"가 출력되어야 합니다.
    nvm current # "v24.11.1"가 출력되어야 합니다.
    npm -v # "11.6.2"가 출력되어야 합니다.
    

3.4. Gemini CLI 설치

Bash
 
npm install -g @google/gemini-cli

4. 기타 도구 설정

4.1. deSEC 및 IP 확인

4.2. VS Code Server (code-server) 설치

code-server를 설치하여 웹 브라우저 기반으로 VS Code 환경을 구축합니다.

Bash
 
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 공개키 접속 설정 명령어

단계명령어설명
반응형

+ Recent posts