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 * ブロックはどこでも妥当なデフォルトを適用し、より具体的なブロックがそれに追加されます。具体的なホストは広いワイルドカードの上に置きます ── 各オプションは最初に一致したものが優先されます。
踏み台ホストを 1 行で
踏み台経由でしかアクセスできないプライベートサーバーに到達するには、ProxyJump がホップを自動的に連結します:
Host db
HostName 10.0.0.5
User postgres
ProxyJump bastion すると ssh db が透過的に bastion を経由してルーティングされます。(Tailscale のようなメッシュ VPN は、踏み台そのものを不要にする代替手段です。)
モバイルでの同等機能
モバイル SSH クライアントは ~/.ssh/config ファイルを使いません ── 同じ情報を接続ごとにアプリ内に保存します。保存された各ホストはそれぞれ独自のユーザー、ポート、鍵、キープアライブ設定を持ち、テキストファイルではなくフォームで編集します。メリットは同じ(一度設定すれば永続的に再利用)ですが、仕組みは設定ファイルではなく UI です。TermAI では各接続が独自の認証とオプションを持つため、IdentitiesOnly やカスタムポートに相当するものは、その接続上の単なる 1 つのフィールドです。
FAQ
SSH 設定ファイルはどこにある?
Linux と macOS では ~/.ssh/config(なければ作成、パーミッションは 600)。Windows では C:\Users\You\.ssh\config です。
特定のホストに特定の鍵を使うには?
そのホストのブロック内に IdentityFile ~/.ssh/that_key と IdentitiesOnly yes を追加します ── 2 行目はクライアントが他の鍵を提示するのを止めます。
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.