基本的なSSH接続と準備についてはこちらをご覧ください。
SSHで接続(Xサーバー)

今回は「.ssh/configファイル」を使用し、SSH経由で複数のリモートサーバーに切り替えて接続出来るようにしてみます。
他社サーバーを利用する場合は、適宜下記パラメータを変更して下さい。

.ssh/configを作成するメリット

短い記述で接続できる

通常、リモート接続する際こういったsshコマンドでの指定になりますが…

# ポート名を指定する場合
ssh ユーザー名@ホスト名 -p ポート番号

# 公開鍵認証の場合
ssh ユーザー名@ホスト名 -i ~/.ssh/鍵の名前

# ポート名及び、公開鍵認証の場合
ssh ユーザー名@ホスト名 -i ~/.ssh/鍵の名前 -p ポート番号

.ssh/config を設定すると以下のような短い記述で接続が可能になります。

$ ssh 接続名

複数の接続先を一括で管理できる

例えば、$ ssh server1 $ ssh server2 のようなコマンドだけで、簡単に複数のサーバーに接続が可能になります。

.ssh/configを作成する

例として、server1server2 の二つのサーバーへの接続を行なってみます。

事前準備

①2つのXサーバーから秘密キー(.key)をダウンロード
※ダウンロードの方法はこちらから

②.sshディレクトリに移動しリネーム(任意の名前に)
例:xs0001.key → id_rsa_xs0001
例:xs0002.key → id_rsa_xs0002

③パーミッションを 600に変更

#パーミッションを 600に変更
$ chmod 600 ~/.ssh/id_rsa_xs0001
$ chmod 600 ~/.ssh/id_rsa_xs0002

configファイルを作成

# configファイルを作成する
$ touch ~/.ssh/config

configファイル内に接続先を記述

テキストエディタで記述していきます。

Host 任意の接続名
    HostName ホスト名
    User ユーザー名
    Port ポート番号
    IdentityFile 鍵へのPATH

以下、具体例です。

# サーバーへ定期的(今回は60秒毎)に生きている報告をする(全体的に記述を有効にする場合は先頭辺りに書いておくといい)
ServerAliveInterval 60

# Xサーバー1
Host server1
    HostName xs0001.xsrv.jp
    User xs0001
    IdentityFile ~/.ssh/id_rsa_xs0001
    Port 10022
    TCPKeepAlive yes
    IdentitiesOnly yes

# Xサーバー2
Host server2
    HostName xs0002.xsrv.jp
    User xs0002
    IdentityFile ~/.ssh/id_rsa_xs0002
    Port 10022
    TCPKeepAlive yes
    IdentitiesOnly yes

パラメータ一覧

パラメータ説明
Hostホスト名
(接続時に使用する名前)
Hostnameホスト名 or IPアドレス
Userユーザ名
Portポート(デフォルト: 22)
※Xサーバーは10022
IdentityFileクライアントの秘密鍵
(デフォルト: ~/.ssh/id_rsa)
StrictHostKeyCheckingサーバのホスト認証鍵を.ssh/known_hostsに追加するか
yes, no, ask (デフォルト: ask)
※no にしておけばfinger printが変わってもSSH接続をはじかれない
UserKnownHostsFileknown_hostsファイル
(デフォルト: ~/.ssh/known_hosts)
ProxyCommandポートフォワードする場合などに使用
使用例: ssh -W %h:%p ${踏み台ホスト名}
※%hは接続ホスト名, %pはポート
ConnectionAttempts接続試行回数
(デフォルト: 1)
TCPKeepAliveサーバとの接続を保持
(デフォルト: yes)
ServerAliveInterval何秒間サーバの応答がなければ接続を閉じるか
LogLevelログの出力レベル(以下、右がより詳細)
QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2
引用:https://tech-blog.rakus.co.jp/entry/20210512/ssh

サーバーに接続する

#xs0001.xsrv.jp に接続されます
$ ssh server1

#xs0002.xsrv.jp に接続されます
$ ssh server2

【参考】
~/.ssh/configを使ってSSH接続を楽にする
https://tech-blog.rakus.co.jp/entry/20210512/ssh
※パラメータ一覧が非常にわかりやすかったので引用させて頂きました。
~/.ssh/configについて
https://qiita.com/passol78/items/2ad123e39efeb1a5286b
.ssh/configファイルでSSH接続を管理する
https://qiita.com/0084ken/items/2e4e9ae44ec5e01328f1
MacのTerminalで「 ssh 接続名」で SSH 接続
https://qiita.com/blendthink/items/d31e5c19751644129efc

1 thought on “複数のサーバーにSSHで接続(Xサーバー)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です