SSH トンネル (SSH Port Forwarding) によるリモートアクセス
SSH Port Forwarding を使うと、直接アクセスできないサーバーに、踏み台サーバーの SSH を経由してアクセスすることができる。
実行例
ポート転送
以下のコマンドを実行すると、ローカル PC 上のバインドポートへの通信が、踏み台サーバーを経由してリモートサーバーに転送される。バインドポートは他で使っていないものを指定すること。これを実行しておいたまま、バインドしたポートに対して通信すればよい。
BIND_PORT=(ローカル PC にバインドするポート番号)
BASTION_USERNAME=(踏み台サーバーの SSH ユーザー名)
BASTION_PORT=(踏み台サーバーのホスト名またはアドレス)
REMOTE_HOST=(アクセスしたいリモートサーバーのホスト名またはアドレス)
REMOTE_PORT=(アクセスしたいリモートサーバーのサービスポート番号)
ssh -N -L ${BIND_PORT}:${REMOTE_HOST}:${REMOTE_PORT} ${BASTION_USERNAME}@${BASTION_HOST}
例) SSH トンネルを経由してリモートサーバーに SSH でログインする。
REMOTE_USERNAME=(アクセスしたいリモートサーバーの SSH ユーザー名)
ssh -p ${BIND_PORT} ${REMOTE_USER}@localhost
例) SSH トンネルを経由してリモートサーバーの MySQL サーバーにアクセスする。
DB_USERNAME=(DB ユーザー名)
mysql -h localhost -P ${BIND_PORT} -u ${DB_USERNAME} -p -e "(SQL)"
ssh/scp で直接アクセス
ProxyCommand オプションを使用して、踏み台サーバーを経由して直接アクセスすることもできる。
ssh -o ProxyCommand="ssh ${BASTION_USERNAME}@${BASTION_HOST} -W %h:%p" \
${REMOTE_USERNAME}@${REMOTE_HOST}
scp も同様に、踏み台サーバーを経由して直接ファイルを転送することができる。
scp -o ProxyCommand="ssh ${BASTION_USERNAME}@${BASTION_HOST} -W %h:%p" \
(転送するファイル) <remote_user>@<remote_host>:<remote_path>
Author And Source
この問題について(SSH トンネル (SSH Port Forwarding) によるリモートアクセス), 我々は、より多くの情報をここで見つけました https://qiita.com/yh1224/items/cd6f5b2fd7c2716ff3bf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .