SSH 접속 시 호스트명(alias) 설정과 조회 순서
인프라 엔지니어로서 서버관리할 때 SSH 접속할 일이 참 많습니다. 오늘은 SSH로 노드에 접속할 때 사용하는 호스트명이 어떻게 설정되고, 시스템이 이를 어떻게 해석하는지 정리하겠습니다.
1. 호스트명(alias)과 필요성
RHCSA 시험에서 아래와 같이 간단한 SSH 명령으로 접속할 수 있습니다:
$ ssh wallah@node1
여기서 node1
은 실제 IP 주소(예: 192.168.56.11) 대신 사용하는 별칭(alias) 입니다. 별칭을 사용하면 IP 관리를 일일이 기억할 필요 없이, 직관적인 이름으로 접속할 수 있어 편리합니다.
2. 호스트명(alias) 매핑 방법
2.1 /etc/hosts 파일 등록
가장 간단한 설정은 클라이언트의 /etc/hosts
파일에 직접 IP와 별칭을 등록하는 방법입니다.
192.168.56.11 node1
192.168.56.12 node2
이렇게 등록해두면, SSH는 node1
이라는 이름을 /etc/hosts
에서 찾아 해당 IP로 연결합니다.
2.2 내부 DNS 서버 활용
기업망이나 사설망 환경에서는 DNS 서버에 별칭을 등록해둘 수도 있습니다.
- DNS 에 다음과 같이 A 레코드를 설정합니다:
node1.example.com. IN A 192.168.56.11 node2.example.com. IN A 192.168.56.12
- 클라이언트는
/etc/resolv.conf
에 지정된 DNS 서버에 질의하여 IP를 얻습니다.
DNS를 사용하면 중앙에서 호스트명을 관리할 수 있고, 많은 노드를 운영할 때 유리합니다.
2.3 ~/.ssh/config 파일(alias 추가)
SSH 전용 별칭을 정의하려면, 사용자 홈 디렉터리의 ~/.ssh/config
파일을 활용할 수 있습니다. 예를 들어:
Host node1
HostName 192.168.56.11
User wallah
Port 22
위와 같이 설정하면, ssh node1
명령만으로도 자동으로 wallah@192.168.56.11:22
로 접속합니다.
3. 이름 해석 순서: /etc/nsswitch.conf 확인
시스템은 호스트명을 해석할 때 /etc/nsswitch.conf
파일의 hosts:
항목에 정의된 순서대로 조회합니다. 기본 설정 예시:
hosts: files dns myhostname
files
->/etc/hosts
파일 조회dns
-> DNS 서버 질의myhostname
-> 로컬 호스트명(hostname)과 비교
따라서 위 설정에서는 /etc/hosts
에 등록된 매핑이 최우선으로 사용되고, 없으면 DNS, 그래도 없으면 로컬 호스트명으로 처리됩니다.
4. 결론
- 작은 테스트 환경에서는
/etc/hosts
에 직접 등록하여 빠르게 접속 설정을 끝내는 것이 편리합니다. - 규모가 커지거나 중앙 관리가 필요할 때는 내부 DNS에 별칭을 등록하고,
nsswitch.conf
에서 우선순위를 편집합니다. - 개별 SSH 설정이 필요할 때는
~/.ssh/config
에 호스트별로 상세 옵션(유저, 포트, IdentifyFile 등)을 지정하면 더욱 유연한 연결이 가능합니다.
실습과 실제 운영 환경 모두에서 효율적으로 서버에 접근할 수 있도록 SSH 접속 설정을 잘 정리해두면 좋습니다.
댓글남기기