SSH 설정 파일이란
~/.ssh/config에 있는 SSH 설정 파일을 사용하면 호스트별 설정 ── 이름, 사용자, 포트, 키, 그리고 수십 가지 옵션 ── 을 저장할 수 있습니다. 그래서 ssh -i ~/.ssh/work_key -p 2222 deploy@203.0.113.7를 입력하는 대신 ssh myserver만 입력하면 됩니다. 터미널에서 SSH를 사용하는 사람에게 이것은 가장 큰 사용성 향상입니다. 이 글에서는 형식, 실제로 사용하는 옵션, 그리고 같은 아이디어를 모바일에서 어떻게 구현하는지 보여드립니다.
기본 형식
~/.ssh/config를 만들고(권한은 600) 호스트마다 블록을 추가합니다:
Host myserver
HostName 203.0.113.7
User deploy
Port 2222
IdentityFile ~/.ssh/work_key 이제 ssh myserver가 전체 명령으로 확장됩니다. Host는 입력하는 별칭이고, HostName은 실제 주소입니다. 이것만으로도 가치의 90%를 차지합니다.
실제로 사용하는 옵션
| 옵션 | 역할 |
|---|---|
HostName | 실제 호스트명 또는 IP |
User | 로그인 사용자명 |
Port | 기본값이 아닌 포트(22에서 변경한 경우) |
IdentityFile | 사용할 개인 키 |
IdentitiesOnly yes | 그 키만 제시 ── too many authentication failures 해결 |
ServerAliveInterval 60 | 킵얼라이브 ── 유휴 시 broken pipe 끊김 해결 |
ProxyJump bastion | 점프 호스트를 경유 |
HostKeyAlgorithms +ssh-rsa | 구형 서버 호환(no matching host key) |
와일드카드와 기본값
Host는 패턴을 받아들이고 설정은 위에서 아래로 적용되므로, 모든 호스트에 기본값을 설정하고 호스트별로 재정의할 수 있습니다:
Host *
ServerAliveInterval 60
AddKeysToAgent yes
Host *.internal.example.com
User admin
ProxyJump bastion
Host bastion
HostName 198.51.100.9
User jump Host * 블록은 어디에나 합리적인 기본값을 적용하고, 더 구체적인 블록이 거기에 추가됩니다. 구체적인 호스트는 넓은 와일드카드 위에 두세요 ── 각 옵션은 처음 일치하는 것이 우선합니다.
점프 호스트를 한 줄로
점프 호스트를 통해서만 접근할 수 있는 프라이빗 서버에 도달하려면, ProxyJump가 홉을 자동으로 연결합니다:
Host db
HostName 10.0.0.5
User postgres
ProxyJump bastion 그러면 ssh db가 투명하게 bastion을 경유해 라우팅됩니다. (Tailscale 같은 메시 VPN은 점프 호스트 자체를 완전히 없애주는 대안입니다.)
모바일에서의 동등 기능
모바일 SSH 클라이언트는 ~/.ssh/config 파일을 사용하지 않습니다 ── 같은 정보를 연결별로 앱 안에 저장합니다. 저장된 각 호스트는 자체 사용자, 포트, 키, 킵얼라이브 설정을 가지며, 텍스트 파일이 아니라 폼에서 편집합니다. 이점은 동일하고(한 번 설정하면 영구 재사용), 메커니즘이 설정 파일이 아니라 UI일 뿐입니다. TermAI에서는 각 연결이 자체 인증과 옵션을 가지므로, IdentitiesOnly나 커스텀 포트에 해당하는 것은 그 연결의 하나의 필드일 뿐입니다.
자주 묻는 질문
SSH 설정 파일은 어디에 있나요?
Linux와 macOS에서는 ~/.ssh/config(없으면 생성, 권한 600). Windows에서는 C:\Users\You\.ssh\config입니다.
특정 호스트에 특정 키를 사용하려면?
해당 호스트 블록 안에 IdentityFile ~/.ssh/that_key와 IdentitiesOnly yes를 추가하세요 ── 두 번째 줄은 클라이언트가 다른 키를 제시하지 못하게 합니다.
Host와 HostName의 차이는?Host는 입력하는 별칭(ssh myserver)이고, HostName은 그것이 해석되는 실제 주소입니다.
모바일 SSH 앱은 ~/.ssh/config를 사용하나요?
아니요 ── 같은 설정을 연결별로 앱의 UI 안에 저장합니다. 편의성은 완전히 동일하며, 파일이 아니라 폼입니다.
핵심 요약
- 위치:
~/.ssh/config(권한 600);Windows는C:\Users\You\.ssh\config - 핵심:
Host별칭 →HostName、User、Port、IdentityFile - 가장 유용한 옵션:
IdentitiesOnly yes、ServerAliveInterval 60、ProxyJump - 패턴:
Host *로 기본값;처음 일치하는 것이 우선하므로 구체적인 블록은 와일드카드 위에 - 모바일에서:앱이 같은 설정을 연결별로 저장 ── 파일이 아니라 폼
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.