複数のサーバーを管理していると、毎回めんどくさい作業がSSH接続。
下記のように毎回、sshコマンドを入力しなければならない。
# ポート名を指定するケース
ssh ユーザー名@ホスト名 -p ポート番号
# 公開鍵認証のケース
ssh ユーザー名@ホスト名 -i ~/.ssh/鍵のパス
# ポート名、公開鍵認証のケース
ssh ユーザー名@ホスト名 -i ~/.ssh/鍵のパス -p ポート番号
オプション | 内容 |
---|---|
-i | 秘密鍵を指定 |
-p | ポート番号を指定 |
-l | ログインユーザー名を指定 |
.ssh/configとは
SSHクライアントの設定ファイル。(リモートサーバーに接続する際に必要な設定ファイル)
SSH接続時の情報を定義しておくことで、sshコマンドのオプションを省略でき、コマンドオプションでは指定できない情報も設定できる。
.ssh/configの作成
ファイルがない場合は作成する。
.sshディレクトリのパーミッションを変更。
terminal
$ mkdir ~/.ssh
$ chmod 700 .ssh
$ touch ~/.ssh/config
.ssh/configに記載
.ssh/config
# gehoAサーバー
Host gehoA
HostName gehogeho.com
User gehogeho
IdentityFile ~/.ssh/test/gehogeho_a.key
Port 20022
TCPKeepAlive yes
IdentitiesOnly yes
# gehoBサーバー
Host gehoB
HostName gehogeho.com
User gehogeho
IdentityFile ~/.ssh/test/gehogeho_b.key
Port 22
TCPKeepAlive yes
IdentitiesOnly yes
# gehoCサーバー
Host gehoC
HostName gehogeho.com
User gehogeho
IdentityFile ~/.ssh/test/gehogeho_c.key
Port 10022
TCPKeepAlive yes
IdentitiesOnly yes
キーワード | 内容 |
---|---|
Host | ホスト名 |
HostName | ホストのアドレスかIPアドレス |
User | ログインユーザ名 |
IdentityFile | ログインするための秘密鍵のパス |
Port | ポート番号(デフォルトは22) |
TCPKeepAlive | 接続状態を継続したい場合:yes 継続しない場合:no |
IdentitiesOnly | IdentityFileが必要な場合:yes 必要ない場合:no |
ServerAliveInterval | 一定期間サーバからデータが送られてこないときに、タイムアウトする秒数。(例) 120 |
サーバーに接続する
AサーバーにSSH接続する場合
terminal
$ ssh gehoA
BサーバーにSSH接続する場合
terminal
$ ssh gehoB
CサーバーにSSH接続する場合
terminal
$ ssh gehoC