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.comUserとは
接続時のユーザー名を指定します。
User student
設定後は以下の入力が不要になります。
ssh student@192.168.60.101Portを指定する
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 1010秒でタイムアウトします。
スクリプト実行時に便利です。
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_ed25519ServerAliveIntervalは接続維持に利用されます。
長時間作業時に便利です。
よくあるトラブル
設定が反映されない
インデントや記述ミスを確認します。
設定確認には以下を利用します。
ssh -G ホスト名Permission denied
秘密鍵の指定ミスや権限設定を確認します。
SSH設定ファイルを利用するメリット
- 接続コマンドが短くなる
- ポート番号を覚える必要がない
- 秘密鍵管理が容易になる
- 踏み台サーバ管理が楽になる
- 接続ミスを減らせる
サーバ台数が増えるほど効果を実感できます。
まとめ
SSH設定ファイル(config)は、SSH接続を効率化する非常に便利な機能です。
接続先やユーザー名、ポート番号、秘密鍵などを事前に登録できるため、日常的なサーバ管理の負担を大幅に軽減できます。
実務では複数サーバ管理や踏み台サーバ接続で利用されることが多いため、Linux管理者であればぜひ活用したい機能です。
まずはよく利用するサーバを登録し、ssh ホスト名だけで接続できる環境を作ってみましょう。





