基本的な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を作成する
例として、server1 と server2 の二つのサーバーへの接続を行なってみます。
事前準備
①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接続をはじかれない |
UserKnownHostsFile | known_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 |
サーバーに接続する
#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 件のコメントが “複数のサーバーにSSHで接続(Xサーバー)” にあります。