[SSH] config 파일 여러 개 사용하기 + ProxyJump 사용하기

peace w·2026년 1월 17일

글 시작에 앞서, 모든 ssh key 파일에는 600 권한을 주는 것이 권장됩니다.

chmod 600 #{키 파일 경로}

600 : 파일 소유자만 읽기/쓰기가 가능하고, 그룹 및 다른 사용자는 접근할 수 없도록


이전에 사용하던 AWS 서버와, 새롭게 사용할 OCI 서버의 config 를 분리하고 싶었다.

  • 메인 config 파일의 경로는 반드시 ~/.ssh/config 여야 한다.

0. 디렉터리 구조

~/.ssh/
 ├─ config          ← 메인 (Include만 있음)
 ├─ config_aws      ← aws 서버 config
 ├─ config_oci      ← oci 서버 config
 ├─ AWS KEY/        ← aws 서버 키가 저장된 폴더
 ├─ OCI KEY/        ← oci 서버 키가 저장된 폴더
 

각 서버당 config 파일을 별개로 작성하고 싶어서 이런 구조를 선택하게 되었다.

1. Include 사용

~/.ssh/config 수정하기

Include config_*

해당 디렉터리에서 이름이 config_ 로 시작하는 모든 파일을 읽으라는 명령이다.

2. 인스턴스 별 config 추가하기

2-1. ~/.ssh/config_aws
aws 서버는 linux로 생성하여서 User가 ec2-user이다.

Host #{설정하고싶은 호스트명 작성}
  HostName #{각 public IP}
  User ec2-user
  IdentityFile ~/.ssh/AWS\ KEY/...key ← 키 파일 경로 

2-2. ~/.ssh/config_oci
oci 서버는 ubuntu로 생성하여서 User가 ubuntu이다.

Host #{설정하고싶은 호스트명 작성}
  HostName #{각 public IP}
  User ubuntu
  IdentityFile ~/.ssh/OCI\ KEY/...key ← 키 파일 경로 

경로에 띄어쓰기가 포함된 경우에는 \ (역슬래쉬) 가 들어가야 한다.
되도록이면 경로에는 한글 또는 띄어쓰기를 안 쓰는 것을 추천한다.

2-3. ~/.ssh/config_oci_db
오라클 클라우드는 서버 인스턴스와 db 인스턴스를 분리했다.
그래서 각 인스턴스에 접근하기 위해서는 key 파일이 별도로 필요하다.

서버 인스턴스에는 public ip를 붙여주었지만,
db 인스턴스는 외부에서 접속할 필요가 없으므로 서버 인스턴스를 통해서 접근하도록 설정했다.
※ 이 때, 반드시 서버 인스턴스와 db 인스턴스의 VCN이 같아야한다.

ProxyJump란 ?

  • 중간 서버를 통해서 remote로 ssh에 연결할 수 있는 기능이다.
  • 사용하면 두 번 연결을 하지 않아도 된다.
  • 접속시 사용하는 IdentityFile 은 둘 다 Local 에 있어야 한다!
  • ProxyJump 는 아래처럼 작성할 수 있다.
Host oci-db
  HostName #{각 public IP}
  User ubuntu
  IdentityFile ~/.ssh/OCI\ KEY/...key ← 키 파일 경로
  ProxyJump #{서버 인스턴스의 호스트명}

위처럼 작성한 경우, ssh oci-db 로 한 번에 db 서버에 접속할 수 있다.

3. ssh 접속하기

ssh + #{등록한 호스트명} 으로 간단하게 접속할 수 있다.

profile
더 성장하자.

0개의 댓글