はじめに
- 弊社はサービス数やトラフィックの関係から数百台のサーバが日夜働いてます。
- 業務する上でも常に数十台のサーバへの接続が必要なため、それらを直接入力するのは時間の無駄です。
- Windowsでは、色々便利なツールはありますがMacの場合は、以外に他のツール入れるよりデフォルトコンソールが一番便利だったします。(個人的感覚)
- また、通常の接続のほかにも踏み台を経由したりDBや検索エンジンなどにポートフォワードかけて接続する場面もあるので、その辺の情報を使いまわせるようにまとめておきます。
前提
- Mac環境の場合です。Windowsは便利なツールたくさんあるので不要かとおもいます。
- 公開鍵認証の設定をしているものとします。
- 補完とかが便利なのでhostsの設定を事前にしておきましょう。
hostsの設定
/etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
{対象サーバのIP} {対象サーバのホスト名}
基本設定
タイムアウトしないようにする
~/.ssh/config
# 5秒おきに応答確認をします。
ServerAliveInterval 5
KeepAliveを有効にする
~/.ssh/config
TCPKeepAlive yes
接続する時にオプションで警告出さないようにする
~/.ssh/config
# 踏み台する際とかにこの警告がでて先に進まない場合とかを防ぐため。
Host *
StrictHostKeyChecking no
対象サーバへ接続する
イメージ
設定内容
~/.ssh/config
Host {対象サーバの名称}
HostName {IPアドレス or サーバホスト名}
Port {ポート番号}
User {接続するユーザ名}
IdentityFile {秘密鍵の置き場所}
補足
- 22番ポートはデフォルトポートなので省略できます。
- コンソールからssh {サーバ名の頭文字}を入力してtabを押すと対象サーバが補完して出てくるはずです。
踏み台サーバを経由して対象サーバへ接続する
イメージ
設定内容
~/.ssh/config
Host {踏み台サーバの名称}
HostName {IPアドレス or サーバホスト名}
Port {ポート番号}
User {接続するユーザ名}
IdentityFile {秘密鍵の置き場所}
Host {対象サーバの名称}
HostName {IPアドレス or サーバホスト名}
Port {ポート番号}
User {接続するユーザ名}
IdentityFile {秘密鍵の置き場所}
ProxyCommand ssh {踏み台サーバの名称} -W %h:%p
踏み台サーバを経由して対象サーバへ特定のIPやポートで接続する
イメージ
設定内容
~/.ssh/config
Host {踏み台サーバの名称}
HostName {IPアドレス or サーバホスト名}
Port {ポート番号}
User {接続するユーザ名}
IdentityFile {秘密鍵の置き場所}
Host {対象サーバの名称}
ProxyCommand ssh -C -f -N -L {指定するIPアドレス}:{指定するポート}:{踏み台サーバの名称}:{踏み台サーバのポート} {対象サーバのIPアドレス}@{対象サーバの{IPアドレス or サーバホスト名}
補足
- DB接続ツールやcURLなどを使って対象サーバに直接繋げないときに使えます。