この記事では、~/.ssh/config
ファイルを用いてssh接続の管理を行います。
複数のサーバを管理している場合、毎回sshコマンドをサーバごとに入力するのは大変です。さらに鍵認証を採用しているなら、秘密鍵も指定しないといけないのでなおさらです。
そこで、登場するのがsshクライアントの設定ファイルである~/.ssh/config
です。
クライアント端末で~/.ssh/config
を設定すると、複数のサーバを管理していても簡単に各サーバにログインできるようになります。
なお、今回の設定は、サーバにsshが実施できることが前提となっていますので、まだssh接続を設定していない場合はsshの基本設計とsshの鍵認証設定を参考に設定してみてください。
configファイルの作成 #
sshの鍵認証設定の記事を参考にsshの鍵認証設定を実施している場合は、既に~/.sshディレクトリを作成していますので、sshconfigの作成
に進んでください。
クライアント端末での~/.sshディレクトリの作成 #
クライアント端末側で、ターミナルからホームディレクトリを開いた状態にします。以下のコマンドでディレクトリ・ファイルの一覧を表示し、~/.ssh
ディレクトリの有無を確認します。
ls -la
~/.ssh
ディレクトリが存在しなければ、以下のコマンドでディレクトリを作成して、700のアクセス権限(ディレクトリのオーナー以外はアクセス不可)を付与します。
mkdir ~/.ssh
chmod 700 ~/.ssh
~/.ssh/config
の作成
#
以下のコマンドで ~/.ssh
配下にconfigファイルを作成します。
touch ~/.ssh/config
~/.ssh/config
の編集
#
~/.ssh/config
を編集して、接続したいサーバのsshの接続情報を記載します。
~/.ssh/config
の書き方は以下のような形です。
# Aサーバ
Host serverA
Hostname hogehoge.com
Port 22
User tanaka
IdentityFile ~/ssh/config/serverA.key
# Bサーバ
Host serverB
Hostname xxx.xxx.xxx.xxx
Port 50134
User yamada
IdentityFile ~/ssh/config/serverB.key
# Cサーバ
Host serverC
Hostname satou-test.co.jp
Port 48912
User satou
~/.ssh/config
の各パラメータの意味は以下のとおりです。他にもパラメータがありますが、今回はある程度必要なものだけを記載しています。
パラメータ | 内容 |
---|---|
Host | 接続したいサーバのホスト名のエイリアス |
HostName | 接続したいサーバのドメイン、もしくはIPアドレス |
Port | ssh接続のポート番号(デフォルトは22番) |
User | ssh接続のユーザ名 |
IdentityFile | (鍵認証を行う場合)秘密鍵ファイルのパス |
サーバへの接続 #
~/.ssh/config
の設定が完了すると、サーバへ接続する場合は先程設定したHostのエイリアスを使って以下のように接続できます。
サーバAに接続する場合
ssh serverA
サーバBに接続する場合
ssh serverB
サーバCに接続する場合
$ ssh serverC
終わりに #
今回は、~/.ssh/config
によってssh接続の管理しました。これで、サーバが何台あろうと秘密鍵がサーバごとにあろうと簡単に接続できます。