SSH設定ファイル(config)の使い方|接続を効率化する便利な設定集

SSH設定ファイル(config)の使い方

SSH設定ファイル(config)を活用してサーバ管理を効率化しよう

Linuxサーバを管理していると、毎回長いSSHコマンドを入力するのが面倒に感じることがあります。

例えば接続先が複数ある場合や、ポート番号が変更されている場合、秘密鍵を指定する必要がある場合などです。

そのような場合に活躍するのがSSH設定ファイル(config)です。

SSH設定ファイルを利用すると、接続先情報を事前に登録できるため、短いコマンドで簡単にサーバへ接続できるようになります。

また、実務では踏み台サーバ(ジャンプサーバ)経由の接続や複数鍵の管理にも利用されるため、Linux管理者にとって非常に重要な知識です。

本記事ではSSH設定ファイルの基本から実務で役立つ活用方法まで詳しく解説します。

SSH設定ファイル(config)とは

SSH設定ファイルとは、SSHクライアントの接続設定を保存するためのファイルです。

一般ユーザーごとの設定は以下に保存されます。

~/.ssh/config

例えば以下のような情報を保存できます。

  • 接続先IPアドレス
  • ホスト名
  • ユーザー名
  • ポート番号
  • 秘密鍵
  • 踏み台サーバ設定
  • 接続オプション

頻繁に接続するサーバがある場合は必須といえる機能です。

設定ファイルの場所

LinuxやmacOSでは以下に配置します。

~/.ssh/config

WindowsのOpenSSH Clientでは以下です。

C:\Users\ユーザー名\.ssh\config

存在しない場合は新規作成できます。

最も基本的な設定例

例えば以下のサーバがあるとします。

  • IPアドレス:192.168.60.101
  • ユーザー名:student

設定ファイルへ記述します。

Host web01
    HostName 192.168.60.101
    User student

保存後は以下だけで接続できます。

$ ssh web01

非常に便利です。

Hostとは

HostはSSH接続時に利用する別名です。

例えば以下の設定です。

Host dns
    HostName 192.168.60.101

接続時は以下になります。
$ ssh dns

実際には192.168.60.101へ接続しています。

HostNameとは

実際に接続するホスト名やIPアドレスを指定します。

HostName 192.168.60.101

DNS名も利用可能です。
HostName server.example.com

Userとは

接続時のユーザー名を指定します。

User student

設定後は以下の入力が不要になります。
ssh student@192.168.60.101

Portを指定する

SSHポートが22以外の場合に利用します。

Host web01
    HostName 192.168.60.101
    User student
    Port 2222

接続時は単に以下です。

$ ssh web01

内部的には2222番へ接続されます。

秘密鍵を指定する

公開鍵認証を利用する場合はIdentityFileを指定できます。

Host web01
    HostName 192.168.60.101
    User student
    IdentityFile ~/.ssh/id_ed25519

毎回-iオプションを入力する必要がなくなります。

複数サーバを登録する

実務では複数台管理することが一般的です。

Host dns
    HostName 192.168.60.101
    User student

Host mail
    HostName 192.168.60.102
    User student

Host web
    HostName 192.168.60.103
    User student

簡単に切り替えられるようになります。

接続タイムアウトを設定する

接続待ち時間を指定できます。

ConnectTimeout 10

10秒でタイムアウトします。

スクリプト実行時に便利です。

StrictHostKeyCheckingを設定する

ホスト鍵検証の動作を指定できます。

StrictHostKeyChecking ask

一般的にはaskまたはyesが利用されます。

ログレベルを指定する

接続ログの詳細度を変更できます。

LogLevel INFO

トラブルシューティング時に役立ちます。

踏み台サーバを利用する

企業環境では踏み台サーバ経由で接続することがあります。

ProxyJumpを利用します。

Host bastion
    HostName 10.0.0.10
    User admin

Host web01
    HostName 192.168.1.10
    User root
    ProxyJump bastion

接続は以下だけです。
$ ssh web01

自動的に踏み台サーバ経由になります。

設定内容を確認する

SSHがどの設定を利用するか確認できます。

$ ssh -G web01

有効な設定が表示されます。

トラブルシューティングで便利です。

設定ファイルの権限

権限は適切に設定する必要があります。

$ chmod 600 ~/.ssh/config

セキュリティ上の理由から推奨されています。

実務で便利な設定例

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

Host dns
    HostName 192.168.60.101
    User student
    IdentityFile ~/.ssh/id_ed25519

ServerAliveIntervalは接続維持に利用されます。

長時間作業時に便利です。

よくあるトラブル

設定が反映されない

インデントや記述ミスを確認します。

設定確認には以下を利用します。

ssh -G ホスト名

Permission denied

秘密鍵の指定ミスや権限設定を確認します。

SSH設定ファイルを利用するメリット

  • 接続コマンドが短くなる
  • ポート番号を覚える必要がない
  • 秘密鍵管理が容易になる
  • 踏み台サーバ管理が楽になる
  • 接続ミスを減らせる

サーバ台数が増えるほど効果を実感できます。

まとめ

SSH設定ファイル(config)は、SSH接続を効率化する非常に便利な機能です。

接続先やユーザー名、ポート番号、秘密鍵などを事前に登録できるため、日常的なサーバ管理の負担を大幅に軽減できます。

実務では複数サーバ管理や踏み台サーバ接続で利用されることが多いため、Linux管理者であればぜひ活用したい機能です。

まずはよく利用するサーバを登録し、ssh ホスト名だけで接続できる環境を作ってみましょう。