~/.ssh/configによるssh接続の管理
この記事では、~/.ssh/configファイルを用いたssh接続の管理方法を紹介します。
複数のサーバを管理している場合、毎回sshコマンドをサーバごとに入力するのは大変です。さらに鍵認証を採用しているなら、秘密鍵も指定しないといけないので、なおさらです。
そこで、登場するのが、sshクライアントの設定ファイルである~/.ssh/configです。
クライアント端末で~/.ssh/configを設定すると、複数のサーバを管理していても簡単に各サーバにログインできるようになります。
なお、今回の設定は、サーバにsshが実施できることが前提となっていますので、まだssh接続を設定していない場合はsshの基本設計とsshの鍵認証設定を参考に設定してみてください。
configファイルの作成
sshの鍵認証設定の記事を参考にsshの鍵認証設定を実施している場合は、既に~/.sshディレクトリを作成していますので、~/.ssh/configの作成へ進んでください。
クライアント端末での~/.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接続の管理方法を紹介しました。これで、サーバが何台あろうと秘密鍵がサーバごとにあろうと簡単に接続できます。