複数のサーバーを管理するとき、毎回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 |
IdentitiesOnly | IdentityFileが必要な場合:yes、必要ない:no |
サーバに接続
fugaAに接続する場合
$ ssh fugaA
fugaBに接続する場合
$ ssh fugaB
fugaCに接続する場合
$ ssh fugaC
このような感じで.ssh/configファイルを設定していきます。