반응형
배경 상황
지금 회사에서는 주로 EC2나 ECS 에서 애플리케이션들을 운영하고 있는데, 장애 대응을 하다보면 해당 인스턴스에 SSH로 접근해야하는 경우들이 많다. 그래서 자주 접근하는(이라고 쓰고 자주 문제가 생기는) 인스턴스들에 대해서 SSH config에 넣고 빠르게 접근할 수 있도록 설정해두고 있다.
SSH Config 설정 방법
먼저 아래 명령어를 통해 .ssh 디렉터리에서 config라는 이름의 파일을 생성한다.
cd ~/.ssh
vi config
config 파일에서 아래와 같이 등록하고자 하는 호스트(EC2 인스턴스 정보)를 적어주면 된다. 여러개의 호스트에 대한 접근 정보를 적으려면 같은 파일에 여러 개의 설정을 이어서 적어주면 된다.
Host <호스트명>
HostName xxx.xxx.xxx.xxx
User ec2-user
Port 22
IdentityFile ~/.ssh/<pem파일명>
- Host: 접속할 호스트의 이름을 설정한다. 만약 Host test-instance라고 입력했다면, ssh test-instance라는 명령어로 해당 호스트에 접근하게 된다.
- HostName: 접속할 호스트의 IP주소를 넣어준다. 이 때 Public IP가 필요한지 Private IP가 필요한지 잘 판단해서 적어준다. 지금 회사는 Site-to-Site VPN으로 사내망과 VPC를 연결해두었다. 따라서 인스턴스를 Private Subnet에 배치하고 내부망을 통해서 접근하기 때문에 Private IP를 적어준다.
- User: 접속할 호스트의 유저 이름이다. OS가 우분투라면 보통 Ubuntu를, Amazon Linux의 경우에는 ec2-user를 유저로 사용한다.
- Port: SSH로 접속할 때 사용할 포트이다. 기본포트(22)를 사용한다면 생략해도 된다.
- IdentityFile: 호스트 접속 시 사용할 pem키의 경로를 기재한다. 보통 .ssh 디렉터리에 같이 저장해놓고 쓰게 된다.
SSH로 호스트 접근하기
위에서 작성한 파일에서 Host 필드에 적은 호스트명을 가지고 접근하면 된다. 탭키를 사용해서 자동완성해서 입력할 수도 있다.
$ ssh <호스트명>
'DevOps' 카테고리의 다른 글
[RSS]SaaS 서비스 장애 상황 및 AWS 서비스 신규소식 Slack으로 받아보기 (0) | 2025.03.29 |
---|---|
[Terraform]tfenv로 테라폼 버전 관리하기(테라폼 여러 버전 활용하기) (0) | 2025.03.20 |
[AWS]Bedrock Inference Profile(추론 프로필)로 비용 분리해서 집계하기 (0) | 2025.03.19 |
[AWS]Identity Center(SSO) SCIM 토큰 갱신 방법(Google Workspace) (0) | 2025.03.18 |
[MongoDB]MongoServerSelectionError 에러 해결 방법 (1) | 2025.03.18 |