728x90

한 줄 요약

~/.ssh/config 파일 하나로 서버 접속 방식(비밀번호·키 인증·포트)을 모두 별칭으로 관리할 수 있다.


핵심 개념

SSH Config는 OpenSSH 클라이언트 설정 파일이다.
매번 긴 접속 명령어를 입력하는 대신, 서버마다 별칭을 지정해 두고 ssh 별칭 한 줄로 접속할 수 있다.

전화번호부와 같다. "010-1234-5678" 대신 "엄마"로 저장해두고 바로 전화하는 것과 같은 원리다.

참고: man ssh_config (OpenSSH 공식 매뉴얼)


설정 파일 작성

vi ~/.ssh/config
# 개발 서버 | 키 인증 | Port 22
Host my-dev
    HostName     192.168.0.10
    User         ubuntu
    Port         22
    IdentityFile ~/.ssh/dev-key.pem
    IdentitiesOnly yes

# INT2 서버 | 키 인증 | 비표준 Port
Host my-int2
    HostName     192.168.0.11
    User         ubuntu
    Port         2222
    IdentityFile ~/.ssh/int2-key.pem
    IdentitiesOnly yes

# Bastion 서버 | 비밀번호 인증 | Port 22
Host my-bastion
    HostName     192.168.0.20
    User         ubuntu
    Port         22

# VPN 서버 | 비밀번호 인증 | 비표준 Port
Host my-vpn
    HostName     192.168.0.30
    User         ubuntu
    Port         8022

IdentitiesOnly yes : 지정한 키 파일만 사용하도록 강제한다. 생략하면 SSH 에이전트의 다른 키도 시도해 예상치 못한 인증 실패가 발생할 수 있다.
비밀번호 인증 서버는 IdentityFile 항목을 생략하면 자동으로 비밀번호를 입력받는다.


키 파일 이동 및 권한 설정

# 키 파일 이동 (다운로드 폴더에 있는 경우)
mv ~/Downloads/your-server-key.pem ~/.ssh/

# 키 파일 목록 확인
ls -l ~/.ssh/*.pem

# 권한 설정 (필수)
chmod 600 ~/.ssh/dev-key.pem
chmod 600 ~/.ssh/int2-key.pem
chmod 600 ~/.ssh/config

 

OpenSSH는 키 파일 권한이 600 또는 400이 아니면 "Permissions are too open" 오류를 내며 접속을 거부한다.


접속 방법

ssh my-dev       # 키 인증, Port 22
ssh my-int2      # 키 인증, 비표준 Port
ssh my-bastion   # 비밀번호 인증, Port 22
ssh my-vpn       # 비밀번호 인증, 비표준 Port

핵심 정리

  • Host 별칭으로 등록하면 ssh 별칭만으로 접속 가능
  • 키 인증은 IdentityFile + IdentitiesOnly yes 조합으로 설정
  • 비밀번호 인증은 IdentityFile 항목 생략
  • 비표준 포트는 Port 항목으로 지정
  • 키 파일과 config 파일 권한은 반드시 chmod 600 설정

주의사항

항목 올바른 값 잘못된 예
키 파일 권한 600 또는 400 644, 755
config 파일 권한 600 644
IdentitiesOnly yes 권장 생략 시 의도치 않은 키 사용 가능
반응형