SSH接続を.ssh/configファイルで管理する

複数のサーバーを管理するとき、毎回SSH接続作業をしなくてはいけません。毎回下のようなsshコマンドを打つ必要があります。

ssh ユーザ名@ホスト名 -p ポート番号
ssh ユーザ名@ホスト名 -i ~/.ssh/鍵のパス
ssh ユーザ名@ホスト名 -i ~/.ssh/鍵のパス -p ポート番号
オプション内容
-i秘密鍵を指定
-pポート番号を指定

そこで、.ssh/configファイルを設定しておくことで、SSH接続のコマンドのオプションを省略することができるようになります。

今回は、SSH接続を.ssh/configファイルで管理する方法をまとめていきます。

.ssh/configの作成

.ssh/configファイルがない場合は、作成します。また、.sshディレクトリのパーミッションを変更します。

$ mkdir ~/.ssh
$ chmod 700 .ssh
$ touch ~/.ssh/config

.ssh/configの記述

.ssh/configに以下を記述していきます。

#fugaAサーバ
Host fugaA
    HostName fugafuga
    User fuga
    IdentityFile ~/.ssh/fugafuga_a.key
    Port ポート番号
    TCPKeepAlive yes
    IdentitiesOnly yes

#fugaBサーバ
Host fugaB
    HostName fugafuga
    User fuga
    IdentityFile ~/.ssh/fugafuga_b.key
    Port ポート番号
    TCPKeepAlive yes
    IdentitiesOnly yes

#fugaCサーバ
Host fugaC
    HostName fugafuga
    User fuga
    IdentityFile ~/.ssh/fugafuga_c.key
    Port ポート番号
    TCPKeepAlive yes
    IdentitiesOnly yes
キーワード内容
Hostホスト名
HostNameホストのアドレス、IPアドレス
Userユーザ名
IdentityFile秘密鍵のパス
Portポート番号
TCPKeepAlive接続状態を継続したい:yes、継続しない:no
IdentitiesOnlyIdentityFileが必要な場合:yes、必要ない:no

サーバに接続

fugaAに接続する場合

$ ssh fugaA

fugaBに接続する場合

$ ssh fugaB

fugaCに接続する場合

$ ssh fugaC

このような感じで.ssh/configファイルを設定していきます。