LinuxのSSH設定ファイル(ssh_config)入門|接続先を登録してサーバー名だけでつなぐ方法

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > LinuxのSSH設定ファイル(ssh_config)入門|接続先を登録してサーバー名だけでつなぐ方法
「VPSにSSHで接続するたびに、長いコマンドを毎回入力するのが面倒…」
Linuxを始めてしばらく経つと、こういう悩みが出てきます。接続先が増えるほど、IPアドレスや秘密鍵のパスを覚えきれなくなり、過去のコマンド履歴を掘り返す手間も増えていきます。

その悩みを根本から解決するのが SSH設定ファイル(~/.ssh/config) です。接続先の情報をあらかじめ登録しておけば、ssh myserver と短い名前を打つだけで目的のサーバーへ接続できます。

この記事では、~/.ssh/config の書き方と使い方を、WSL2・VPS環境を使う初心者向けにゼロから解説します。公開鍵認証でVPSに接続できる状態から始めて、設定ファイルで複数のサーバーを名前で管理できるところまでハンズオンで体験しましょう。

この記事のポイント

・~/.ssh/configに書くとssh 名前だけでサーバーに接続できる
・Host・HostName・User・IdentityFile・Portで接続先を設定する
・複数のサーバーを本番/開発/VPSなど名前で使い分けられる
・パーミッションはchmod 600 ~/.ssh/configの設定が必須


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

なぜSSH設定ファイルを使うと便利なのか

SSH接続の基本コマンドは次のような形です。

# 基本的なSSH接続コマンド ssh ubuntu@203.0.113.10 -i ~/.ssh/id_rsa -p 22

これをサーバー1台だけなら毎回入力できるかもしれません。でも、VPS・本番サーバー・開発サーバーと3台4台と増えてくると状況が変わります。

・どのIPアドレスがどのサーバーか覚えられない
・秘密鍵のパスが違う場合、どの鍵を使うか毎回確認しなければならない
・ポート番号が22番以外のサーバーは特に入力が長くなる

~/.ssh/config を使えば、こうした情報をあらかじめファイルに書いておき、ssh サーバー名 の短いコマンドだけで接続できるようになります。設定ファイルは一度書けば永続的に使えるため、日々の作業効率が大きく上がります。

~/.ssh/configの準備と基本的な書き方

1. .sshディレクトリとconfigファイルを準備する

WSL2やLinux環境でターミナルを開き、以下の手順で設定ファイルを作成します。

# .ssh ディレクトリが存在するか確認 ls -la ~/.ssh # なければ作成する(すでにある場合はスキップ) mkdir -p ~/.ssh chmod 700 ~/.ssh # configファイルを作成して開く(nanoを使う場合) nano ~/.ssh/config

configファイルを作成したら、パーミッションを 600 に設定します。 これを忘れると SSH がファイルを読み込まず、設定が反映されません。

chmod 600 ~/.ssh/config

2. Hostブロックで接続先を登録する

~/.ssh/config の書き方の基本は「Hostブロック」です。1つのサーバーに対して1つのブロックを書きます。

Host myserver HostName 203.0.113.10 User ubuntu IdentityFile ~/.ssh/id_rsa Port 22

各設定項目の意味は次のとおりです。

Host:接続時に使うニックネーム(自由に付けられる)
HostName:実際のIPアドレスまたはドメイン名
User:ログインするユーザー名
IdentityFile:使用する秘密鍵のパス
Port:SSHのポート番号(デフォルトは22。変更していない場合は省略可)

3. ssh 名前 で接続する

設定ファイルに書いたら、ターミナルから以下のコマンドで接続できます。

ssh myserver

実際に接続すると次のような出力が表示されます。

Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.8.0-51-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com Last login: Sun Aug 24 09:15:32 2026 from 203.0.113.50 ubuntu@web01:~$

ubuntu@web01:~$ というプロンプトが表示されれば接続成功です。ssh ubuntu@203.0.113.10 -i ~/.ssh/id_rsa -p 22 と打っていたのが ssh myserver の一言で済むようになりました。

複数のサーバーを名前で使い分ける

1. 本番・開発・VPSを1つのファイルにまとめる

Hostブロックは何個でも追加できます。実際の現場では次のような構成がよく使われます。

# 本番サーバー Host prod HostName 203.0.113.10 User ubuntu IdentityFile ~/.ssh/id_rsa_prod Port 22 # 開発サーバー(ポート番号が違う例) Host dev HostName 198.51.100.5 User developer IdentityFile ~/.ssh/id_rsa_dev Port 2222 # ConoHaのVPS Host conoha-vps HostName 198.51.100.20 User root IdentityFile ~/.ssh/id_rsa_conoha Port 22

設定したら、それぞれ次のコマンドで接続できます。

ssh prod # 本番サーバーへ接続 ssh dev # 開発サーバーへ接続 ssh conoha-vps # ConoHaのVPSへ接続

2. ワイルドカード(Host *)でデフォルト設定をまとめる

Host * と書くと、全ての接続に共通で適用される設定を書けます。よく使われるのはタイムアウト防止の設定です。

# 全サーバー共通のデフォルト設定(ファイルの末尾に書く) Host * ServerAliveInterval 60 ServerAliveCountMax 3

ServerAliveInterval 60 は「60秒ごとにサーバーに生存確認を送る」設定です。操作していない時間が続いても接続が切れにくくなります。Host * は個別のHostブロックより後(ファイルの末尾)に書くのが慣習です。

よく使う設定オプション一覧

日常的な作業でよく使う設定オプションをまとめます。

オプション名 説明
Host 接続時に使うニックネーム Host myserver
HostName 実際のIPアドレスまたはドメイン HostName 203.0.113.10
User ログインユーザー名 User ubuntu
IdentityFile 使用する秘密鍵のパス IdentityFile ~/.ssh/id_rsa
Port SSHのポート番号(省略時は22) Port 2222
ServerAliveInterval タイムアウト防止の確認間隔(秒) ServerAliveInterval 60
ProxyJump 踏み台サーバー経由で接続する ProxyJump bastion
ProxyJump は、外部から直接アクセスできないサーバーへ、踏み台サーバーを経由して接続するためのオプションです。会社のサーバー環境などでよく使われます。設定例は次のとおりです。

# 踏み台サーバー Host bastion HostName 203.0.113.1 User ec2-user IdentityFile ~/.ssh/id_rsa # 踏み台経由でのみ接続できる内部サーバー Host internal-server HostName 10.0.1.5 User ubuntu IdentityFile ~/.ssh/id_rsa ProxyJump bastion

ssh internal-server と入力するだけで、踏み台への接続 → 内部サーバーへの接続を自動でつなぎます。

よくあるトラブルと対処法

1. 「Bad owner or permissions」エラーが出る

~/.ssh/config のパーミッションが正しくない場合に発生します。

# エラーメッセージの例 Bad owner or permissions on /home/ubuntu/.ssh/config # 対処法:パーミッションを600に設定 chmod 600 ~/.ssh/config ls -la ~/.ssh/config # -rw------- 1 ubuntu ubuntu 214 Aug 24 09:30 /home/ubuntu/.ssh/config

-rw-------(所有者のみ読み書き可)になっていることを確認してください。

2. 設定が反映されない・接続できない

ssh -v(verbose)オプションを付けると、どの設定ファイルを読んでいるか、どの鍵を試しているかが表示されます。

ssh -v myserver # 出力例(一部) OpenSSH_9.6p1 Ubuntu-3ubuntu13.5, OpenSSL 3.0.13 11 Feb 2024 debug1: Reading configuration data /home/ubuntu/.ssh/config debug1: /home/ubuntu/.ssh/config line 1: Applying options for myserver debug1: Connecting to 203.0.113.10 [203.0.113.10] port 22.

Reading configuration data /home/ubuntu/.ssh/config と表示されていれば、設定ファイルは読み込まれています。Applying options for myserver が表示されれば、Host名も正しく認識されています。

3. WSL2でWindowsのSSH鍵を参照したい場合

WSL2では、LinuxファイルシステムからWindows側のファイルにアクセスできます。WSL2内で ~/.ssh/config を書く場合、Windows側の鍵を参照したければ次のようなパスを使います。

# Windowsのユーザーフォルダ(例: ユーザー名がtomohiro)の.sshフォルダを参照する例 IdentityFile /mnt/c/Users/tomohiro/.ssh/id_rsa

ただし、Windows側のファイルはパーミッション制御が異なるため、WSL2内で鍵ファイルを別途作成して ~/.ssh/ に置く方が管理しやすいです。

本記事のまとめ

~/.ssh/config を使うと、長いSSHコマンドを短縮名1つで呼び出せるようになります。設定の要点をまとめます。

やりたいこと 設定または操作
configファイルを作成する nano ~/.ssh/config
パーミッションを設定する chmod 600 ~/.ssh/config
接続先をニックネームで登録する Hostブロックに Host・HostName・User・IdentityFile・Portを書く
ニックネームで接続する ssh ニックネーム名
タイムアウトを防ぐ Host * ブロックに ServerAliveInterval 60 を書く
設定が反映されない時の確認 ssh -v ニックネーム名
~/.ssh/config の設定は1回書けば何年でも使えます。VPSを複数台契約したり、AWSのEC2インスタンスを立てたりするたびにHostブロックを追加していく形で運用できます。まずは手元のVPS1台から設定して、接続が楽になる感覚をつかんでみてください。

Linux学習をさらに深めるための関連記事

SSH設定ができたら、次はLinuxのサーバー管理・セキュリティ・自動化スキルを深めていきましょう。

firewall-cmdコマンドでファイアウォールを設定する方法|ポート開放やゾーン管理も
bashで関数を定義して再利用する方法|シェルスクリプトのライブラリ化と実践例
Linuxサーバー構築の標準構成ガイド|Webアプリ向けディレクトリ・サービス・パーティション設計
AIにLinuxトラブルを解析させる方法|journalctl・dmesgのログをChatGPT・Claudeに渡すコツ
digコマンドでDNS問い合わせを行う方法|正引き・逆引きやレコードタイプ別の使い方も
Linuxサーバーのスワップ領域を設計・拡張する方法|物理メモリ別の推奨容量とswapfile作成
timedatectlコマンドでLinuxのタイムゾーンと時刻を設定する方法|NTP有効化から確認手順まで
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。