🔑
~/.ssh/configにSSHトンネリングの設定を定義して安全にSSH接続する
概要
SSH接続時に秘密鍵の指定やポートの指定などを行うのは面倒なので~/.ssh/config
でいい感じにやってくれるように以下を参考に設定してみた
~/.ssh/config
とは
~/.ssh/configファイルとは、SSHクライアント用の設定ファイルです。 configファイルに記載しておくことでSSH接続を行う際は上記の情報を省略することができます。 configファイルは各ユーザのホームディレクトリ配下の .ssh ディレクトリで管理します
~/.ssh/configを作成
touch ~/.ssh/config
# パーミッションを変更しないとSSH接続時に権限エラーで怒られます
chmod 700 ~/.ssh/config
接続情報を定義する
# ホスト名
Host hogehoge.com
# 接続先のIPアドレス/ドメイン名
HostName sv.hogehoge.com
# ポート番号
Port xx
# ユーザ名
User hoge
# 指定した秘密鍵のみを使用するか
IdentitiesOnly yes
# 秘密鍵のパス
IdentityFile ~/.ssh/hogehoge.com.key
# ポートフォワード失敗時にプロセスを終了する
ExitOnForwardFailure yes
# リモートホストがクライアント側に転送されたポートに接続することを許可するか
# 任意のアドレスにバインドする
GatewayPorts yes
# Keepalive(パケットを送信しタイムアウトを防止する)
TCPKeepAlive yes
# パケットの送信間隔(秒)
ServerAliveInterval 60
SSHトンネル(SSHポートフォワーディング)
SSHトンネルはSSHポートフォワーディングとも呼ばれており、SSHによって確立した通信経路を利用して、クライアントが直接アクセスできないサーバーのポートへ転送してくれる仕組みのことです。
SSHで接続
ssh hogehoge.com
最後に
GatewayPorts yes
にするとすべてのRemote Port Forwardingが強制的に(localhostのみではなく)すべてのアドレスでListenする事になるので影響が大きいとのことなので留意した上で設定することが必要です
Discussion