~/.ssh/configによるssh接続の管理

2018年5月26日 2022年1月14日

この記事では、~/.ssh/configファイルを用いたssh接続の管理方法を紹介します。

複数のサーバを管理している場合、毎回sshコマンドをサーバごとに入力するのは大変です。さらに鍵認証を採用しているなら、秘密鍵も指定しないといけないので、なおさらです。

そこで、登場するのが、sshクライアントの設定ファイルである~/.ssh/configです。

クライアント端末で~/.ssh/configを設定すると、複数のサーバを管理していても簡単に各サーバにログインできるようになります。

なお、今回の設定は、サーバにsshが実施できることが前提となっていますので、まだssh接続を設定していない場合はsshの基本設計sshの鍵認証設定を参考に設定してみてください。

configファイルの作成

sshの鍵認証設定の記事を参考にsshの鍵認証設定を実施している場合は、既に~/.sshディレクトリを作成していますので、~/.ssh/configの作成へ進んでください。

クライアント端末での~/.sshディレクトリの作成

クライアント端末側で、ターミナルからホームディレクトリを開いた状態にします。以下のコマンドでディレクトリ・ファイルの一覧を表示し、~/.sshディレクトリの有無を確認します。

Terminal
ls -la

~/.sshディレクトリが存在しなければ、以下のコマンドでディレクトリを作成して、700のアクセス権限(ディレクトリのオーナー以外はアクセス不可)を付与します。

Terminal
mkdir ~/.ssh
chmod 700 ~/.ssh

~/.ssh/configの作成

以下のコマンドで~/.ssh配下にconfigファイルを作成します。

Terminal
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アドレス
Portssh接続のポート番号(デフォルトは22番)
Userssh接続のユーザ名
IdentityFile(鍵認証を行う場合)秘密鍵ファイルのパス

サーバへの接続

~/.ssh/configの設定が完了すると、サーバへ接続する場合は先程設定したHostのエイリアスを使って以下のように接続できます。

サーバAに接続する場合

Terminal
ssh serverA

サーバBに接続する場合

Terminal
ssh serverB

サーバCに接続する場合

Terminal
$ ssh serverC

終わりに

今回は~/.ssh/configによるssh接続の管理方法を紹介しました。これで、サーバが何台あろうと秘密鍵がサーバごとにあろうと簡単に接続できます。

Posted by mako
関連記事
コメント
...