チュートリアル

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 * ブロックはどこでも妥当なデフォルトを適用し、より具体的なブロックがそれに追加されます。具体的なホストは広いワイルドカードのに置きます ── 各オプションは最初に一致したものが優先されます。

踏み台ホストを 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 つのフィールドです。

保存された設定で接続するスマホ上の保存済み接続
~/.ssh/config のモバイル版:各接続が独自のホスト、ユーザー、ポート、鍵を保存 ── フォームで一度設定すれば、タップ一つで再利用。

FAQ

SSH 設定ファイルはどこにある?
Linux と macOS では ~/.ssh/config(なければ作成、パーミッションは 600)。Windows では C:\Users\You\.ssh\config です。

特定のホストに特定の鍵を使うには?
そのホストのブロック内に IdentityFile ~/.ssh/that_keyIdentitiesOnly yes を追加します ── 2 行目はクライアントが他の鍵を提示するのを止めます。

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