튜토리얼

SSH 설정 파일(~/.ssh/config) 실전 가이드

~/.ssh/config에 호스트별 SSH 설정을 저장해 긴 명령을 "ssh myserver"로 대체합니다. 형식, 실제로 사용하는 옵션(IdentitiesOnly、ServerAliveInterval、ProxyJump)、와일드카드, 그리고 모바일에서의 동등 기능.

CC Chen Chen· 창업자·2026년 6월 24일·6분 분량

SSH 설정 파일이란

~/.ssh/config에 있는 SSH 설정 파일을 사용하면 호스트별 설정 ── 이름, 사용자, 포트, 키, 그리고 수십 가지 옵션 ── 을 저장할 수 있습니다. 그래서 ssh -i ~/.ssh/work_key -p 2222 [email protected]를 입력하는 대신 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/config의 모바일 버전:각 연결이 자체 호스트, 사용자, 포트, 키를 저장 ── 폼에서 한 번 설정하면 탭 한 번으로 재사용.

자주 묻는 질문

SSH 설정 파일은 어디에 있나요?
Linux와 macOS에서는 ~/.ssh/config(없으면 생성, 권한 600). Windows에서는 C:\Users\You\.ssh\config입니다.

특정 호스트에 특정 키를 사용하려면?
해당 호스트 블록 안에 IdentityFile ~/.ssh/that_keyIdentitiesOnly yes를 추가하세요 ── 두 번째 줄은 클라이언트가 다른 키를 제시하지 못하게 합니다.

Host와 HostName의 차이는?
Host는 입력하는 별칭(ssh myserver)이고, HostName은 그것이 해석되는 실제 주소입니다.

모바일 SSH 앱은 ~/.ssh/config를 사용하나요?
아니요 ── 같은 설정을 연결별로 앱의 UI 안에 저장합니다. 편의성은 완전히 동일하며, 파일이 아니라 폼입니다.

핵심 요약

  • 위치:~/.ssh/config(권한 600);Windows는 C:\Users\You\.ssh\config
  • 핵심:Host 별칭 → HostNameUserPortIdentityFile
  • 가장 유용한 옵션:IdentitiesOnly yesServerAliveInterval 60ProxyJump
  • 패턴:Host *로 기본값;처음 일치하는 것이 우선하므로 구체적인 블록은 와일드카드 위에
  • 모바일에서:앱이 같은 설정을 연결별로 저장 ── 파일이 아니라 폼
Try TermAI

Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.

CC
Chen Chen — Founder of TermAI

Writes about mobile DevOps, terminal UX, and the surprising depth of "boring" infrastructure.

Was this useful? ← Back to blog