기술 가이드

SSH 사용법: Mac에서 Terminal로 안전하게 접속하기

5 min read 네트워킹 업데이트됨 25 Sep 2025
Mac에서 Terminal로 SSH 사용법 — 단계별 가이드
Mac에서 Terminal로 SSH 사용법 — 단계별 가이드

개요

원격 접속이 필수인 시대에 SSH(Secure Shell)는 안전한 명령 실행과 파일 전송을 위한 표준 도구입니다. 이 문서는 Mac에서 Terminal을 통해 SSH를 시작하고, 키 기반 인증을 설정하며, 문제 해결과 보안 강화를 위한 권장 절차를 제공합니다.

중요 용어 한 줄 정의:

  • SSH: 네트워크 상에서 암호화된 터널을 통해 원격 호스트에 접속하고 명령을 실행하거나 파일을 전송하는 프로토콜.

준비 사항

  • Mac에서 Terminal 앱에 접근할 수 있어야 합니다.
  • 원격 서버의 IP 주소 또는 도메인 이름과 해당 서버의 사용자 계정이 필요합니다.
  • 서버에 대한 접근 권한(비밀번호 또는 공개키)이 있어야 합니다.
  • macOS의 경우, 자신의 Mac에 다른 장치에서 접속하려면 시스템 환경설정 > 공유에서 원격 로그인(Remote Login)을 활성화하세요.

Important: 보안상 공용 Wi-Fi에서 민감한 작업을 할 때는 VPN 사용 또는 추가 인증을 권장합니다.

1. Terminal 열기

방법은 두 가지가 일반적입니다:

  • Spotlight 이용: Command + Space를 눌러 Spotlight를 연 다음 Terminal을 검색하여 실행합니다.
  • Finder 이용: 응용 프로그램 > 유틸리티 폴더의 Terminal 아이콘을 더블클릭합니다.

2. SSH 연결 시작하기

원격 서버의 IP 주소나 도메인, 그리고 사용자 이름을 준비합니다. Terminal에서 기본 SSH 명령은 다음과 같습니다:

ssh username@ip-address

예: ssh alice@203.0.113.45

처음 연결 시 서버의 호스트 키 지문을 확인하라는 메시지가 나오면 yes를 입력해 계속합니다. 비밀번호를 묻는 경우 입력 중에는 표시되지 않으니 그대로 입력하고 Enter를 누르세요.

호스트 키 지문 확인은 중간자 공격 방지를 위한 기본 절차입니다. 지문이 바뀌었다면 서버 관리자에게 확인하세요.

SSH 키 기반 인증 설정 (권장)

비밀번호 대신 공개/개인 키 쌍을 사용하면 보안성과 편의성이 모두 높아집니다. macOS에서 가장 흔한 설정 방법은 다음과 같습니다.

  1. 로컬에서 키 쌍 생성:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 파일 위치는 기본값(~/.ssh/id_rsa)으로 두거나 별도 이름을 사용하세요.
  1. 공개키를 서버에 복사:
  • macOS에서 편리한 방법:
pbcopy < ~/.ssh/id_rsa.pub

그런 다음 서버의 ~/.ssh/authorized_keys 파일에 붙여넣기 합니다(폴더와 파일의 퍼미션을 확인).

  • 또는 scp로 전송:
scp ~/.ssh/id_rsa.pub username@ip-address:~/.ssh/temp_pubkey
ssh username@ip-address 'cat ~/.ssh/temp_pubkey >> ~/.ssh/authorized_keys && rm ~/.ssh/temp_pubkey'
  1. 로컬에서 접속 테스트:
ssh username@ip-address

비밀번호 없이 접속된다면 설정이 성공한 것입니다.

Note: authorized_keys 파일 권한은 600, .ssh 디렉터리 권한은 700으로 설정하세요.

3. 기본 원격 작업 명령들

접속 후 자주 쓰는 명령들:

  • 디렉토리 이동: cd 디렉토리
  • 목록 보기: ls -la
  • 디렉토리 생성: mkdir 디렉토리
  • 파일 삭제: rm 파일
  • 복사: cp 소스 대상
  • 이동/이름 변경: mv 소스 대상

파일 작업은 항상 권한과 소유자를 확인하세요. sudo가 필요한 경우 로컬과 원격에서 다르게 동작합니다.

4. SSH 세션 종료하는 방법

  • exit 입력 후 Enter
  • 또는 키보드 단축키 Ctrl + D

5. 파일 전송: scp와 sftp

  • 로컬에서 서버로 업로드:
scp /path/to/localfile username@ip-address:/remote/path/
  • 서버에서 로컬로 다운로드:
scp username@ip-address:/remote/path/file /local/path/
  • sftp를 통한 상호작용적 전송:
sftp username@ip-address
sftp> put localfile
sftp> get remotefile

scp는 단발성 전송, sftp는 대화형 전송과 디렉터리 탐색에 유리합니다.

6. 포트 포워딩과 에이전트 전달

  • 로컬 포트 포워딩(예: 로컬 8080을 원격 호스트의 80으로 연결):
ssh -L 8080:localhost:80 username@ip-address
  • 리모트 포트 포워딩(원격에서 로컬로 포트 개방):
ssh -R 9090:localhost:3000 username@ip-address
  • SSH 에이전트 전달(원격에서 로컬 키 사용):
ssh -A username@ip-address

포워딩은 개발 환경에서 로컬 서비스를 안전하게 노출하거나, 내부 리소스를 우회하여 접근할 때 유용합니다. 보안 위험성을 이해하고 필요한 경우에만 사용하세요.

7. SSH 설정 파일 사용하기 (~/.ssh/config)

자주 사용하는 호스트는 ~/.ssh/config에 별칭과 옵션을 저장하면 편리합니다. 예시:

Host myserver
  HostName 203.0.113.45
  User alice
  Port 2222
  IdentityFile ~/.ssh/id_rsa_myserver
  ForwardAgent yes

이제 ssh myserver 만으로 접속할 수 있습니다.

8. 보안 강화 권장 사항

  • 기본 포트(22) 대신 다른 포트를 사용해 무차별 대입 공격을 줄이세요.
  • 비밀번호 인증을 막고 공개키 인증만 허용하세요(Change PasswordAuthentication no in sshd_config).
  • 루트 직접 로그인 비허용(PermitRootLogin no).
  • SSH 키는 2048비트 이상(RSA) 또는 ED25519를 권장합니다.
  • authorized_keys와 .ssh 디렉터리 퍼미션을 엄격히 관리하세요.
  • 서버와 클라이언트 소프트웨어를 주기적으로 업데이트하세요.
  • 로그인 시도가 많은 서버는 fail2ban 같은 도구를 사용해 차단 정책을 적용하세요.

중요: 설정을 변경하기 전에 기존 연결을 유지하는 세션에서 먼저 테스트하여 잠금(lockout)을 방지하세요.

9. 문제 해결 가이드

  • Permission denied: public key가 올바르게 설치되었는지, 파일 권한이 적절한지 확인하세요.
  • Host key verification failed: 서버의 호스트 키가 변경되었음을 의미합니다. 서버 관리자에게 확인하세요.
  • Connection refused: 방화벽, 포트 번호, sshd 서비스 상태를 확인하세요.
  • No route to host: 네트워크 연결 또는 IP 주소를 확인하세요.

간단 체크 명령:

ssh -v username@ip-address  # 상세 디버그 출력
nc -vz ip-address port       # 포트 연결 확인 (nc가 설치된 경우)
ping ip-address

10. 운영자용 빠른 점검 플레이북

  1. 로컬: ssh-keygen으로 키 생성
  2. 로컬: 공개키를 안전하게 서버의 ~/.ssh/authorized_keys에 추가
  3. 서버: sshd_config에서 PermitRootLogin no, PasswordAuthentication no 설정(테스트 후 적용)
  4. 서버 방화벽에서 SSH 포트 허용
  5. 서비스 재시작 및 로그 확인: sudo systemctl restart sshd && sudo journalctl -u sshd –since “5 minutes ago”
  6. 모니터링 및 차단 규칙 설정(fail2ban 등)

역할별 체크리스트

  • 개발자

    • SSH 키 생성 및 안전한 백업
    • ~/.ssh/config에 자주 쓰는 호스트 설정
    • 포트 포워딩으로 원격 DB에 안전하게 접속
  • 시스템 관리자

    • 공개키 기반 인증만 허용하고 로그 감시 설정
    • 서버의 sshd 보안 설정과 패치 관리
    • 접근 제어(방화벽, IP 화이트리스트)
  • 초보자

    • Terminal 사용법 숙지
    • 비밀번호 대신 키 기반 인증 전환 연습
    • scp로 파일 전송 실습

작동 흐름(간단 플로우)

graph TD
  A[Terminal 열기] --> B{키 사용 여부}
  B -->|키 있음| C[ssh username@host]
  B -->|키 없음| D[ssh username@host -> 비밀번호 입력]
  C --> E[명령 실행 / 파일 전송]
  D --> E
  E --> F[exit 또는 Ctrl+D]

사실 상자 — 핵심 숫자

  • 기본 SSH 포트: 22
  • 권장 키 길이: RSA 2048 이상, 권장 ED25519 사용 가능
  • 홈 디렉터리의 SSH 퍼미션: ~/.ssh 700, ~/.ssh/authorized_keys 600

자주 묻는 질문

내 Mac에 다른 장치에서 SSH로 접속할 수 있나요?

네. 시스템 환경설정 > 공유에서 원격 로그인(Remote Login)을 활성화하면 가능합니다. 그 후 다른 장치에서 ssh username@mac-ip로 접속하세요.

내 Mac의 IP 주소는 어떻게 찾나요?

시스템 환경설정 > 네트워크에서 활성화된 네트워크(Wi-Fi 또는 Ethernet)를 선택하면 IP 주소를 확인할 수 있습니다. Terminal에서는 ifconfig 명령으로도 확인할 수 있습니다.

비밀번호 없이 SSH를 사용할 수 있나요?

네. SSH 키 기반 인증을 설정하면 비밀번호 입력 없이 접속할 수 있습니다. 로컬에서 키 쌍을 생성한 뒤 공개키를 서버의 ~/.ssh/authorized_keys에 추가하세요.

SSH는 안전한가요?

네. SSH는 전송 암호화를 제공해 데이터 기밀성과 무결성을 보장합니다. 다만 클라이언트와 서버를 최신 상태로 유지하고 강력한 인증 방법을 사용해야 안전합니다.

SSH로 파일을 전송할 수 있나요?

네. scp 또는 sftp를 사용해 로컬과 원격 간 파일을 안전하게 전송할 수 있습니다.

결론

SSH는 원격 시스템 관리와 파일 전송을 위한 핵심 도구입니다. 이 가이드를 따라 Terminal에서 기본 접속부터 키 기반 인증, 포트 포워딩, 보안 강화까지 단계적으로 적용하면 안전하고 효율적인 원격 작업 환경을 구축할 수 있습니다.

요약: Terminal을 열고 ssh 명령으로 접속을 시작한 뒤, 가능한 한 빨리 키 기반 인증으로 전환하세요. 보안을 강화하고 문제가 발생하면 ssh -v로 디버그 출력을 확인해 문제를 진단하세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Debian 11에 Podman 설치 및 사용하기
컨테이너

Debian 11에 Podman 설치 및 사용하기

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정
시스템 관리

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드
그래픽 가이드

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드

Debian Etch에 Dansguardian+Squid(NTLM) 구성
네트워크

Debian Etch에 Dansguardian+Squid(NTLM) 구성

안드로이드 SD카드 설치 오류(Error -18) 완전 해결
안드로이드 오류

안드로이드 SD카드 설치 오류(Error -18) 완전 해결

KNetAttach로 원격 네트워크 폴더 연결하기
네트워킹

KNetAttach로 원격 네트워크 폴더 연결하기