🔑

~/.ssh/configにSSHトンネリングの設定を定義して安全にSSH接続する

2022/02/04に公開

概要

SSH接続時に秘密鍵の指定やポートの指定などを行うのは面倒なので~/.ssh/configでいい感じにやってくれるように以下を参考に設定してみた

https://qiita.com/passol78/items/2ad123e39efeb1a5286b

https://blog.odaryo.com/2020/01/ssh-config-settings/

~/.ssh/configとは

~/.ssh/configファイルとは、SSHクライアント用の設定ファイルです。 configファイルに記載しておくことでSSH接続を行う際は上記の情報を省略することができます。 configファイルは各ユーザのホームディレクトリ配下の .ssh ディレクトリで管理します

https://tech-blog.rakus.co.jp/entry/20210512/ssh#:~:text=~%2F.ssh%2Fconfigファイルと,用の設定ファイルです。&text=configファイルに記載し,リで管理します。

~/.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によって確立した通信経路を利用して、クライアントが直接アクセスできないサーバーのポートへ転送してくれる仕組みのことです。

https://www.wantedly.com/companies/tutorial/post_articles/298736#:~:text=SSHトンネルとは,くれる仕組みのことです。

SSHで接続

ssh hogehoge.com

最後に

GatewayPorts yesにするとすべてのRemote Port Forwardingが強制的に(localhostのみではなく)すべてのアドレスでListenする事になるので影響が大きいとのことなので留意した上で設定することが必要です

https://teratail.com/questions/256497

GitHubで編集を提案

Discussion