기술 가이드

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 [email protected]

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

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

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

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

  1. 로컬에서 키 쌍 생성:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
  • 파일 위치는 기본값(~/.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
저자
편집

유사한 자료

전통 방식으로 리눅스 커널 빌드하기
시스템 관리

전통 방식으로 리눅스 커널 빌드하기

Gmail에서 Hotmail 보내고 받기 설정
이메일

Gmail에서 Hotmail 보내고 받기 설정

QuickClick으로 볼륨 버튼에 단축키 설정하기
안드로이드

QuickClick으로 볼륨 버튼에 단축키 설정하기

Thunderbird에서 Hotmail 계정 설정하기
이메일

Thunderbird에서 Hotmail 계정 설정하기

YouTube 시청 기록 보기·삭제·일시정지 가이드
프라이버시

YouTube 시청 기록 보기·삭제·일시정지 가이드

Putlocker이 작동하지 않을 때 빠르게 해결하는 방법
스트리밍 문제

Putlocker이 작동하지 않을 때 빠르게 해결하는 방법