基本的な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_xs0002configファイルを作成
# configファイルを作成する
$ touch ~/.ssh/configconfigファイル内に接続先を記述
テキストエディタで記述していきます。
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