メインコンテンツまでスキップ

クラウド上のLinuxサーバを踏み台にしてSSHを経由してリモート環境へアクセスする

SSHポート転送を利用すれば、リモート環境のSSHやリモートデスクトップへアクセスできます。
本記事ではリモート環境へSSH接続する手順を解説します。
この手法を使えば下記のようなことが実現できます。

  • 職場から自宅のLinuxサーバへのsshアクセス
  • 職場から自宅のRaspberry Piへのsshアクセス
  • ネットワークが繋がっていない別開発拠点のLinuxサーバへのsshアクセス

また、この手法を応用すれば下記のようなことも実現できます。

  • 職場から自宅のPCへのリモートデスクトップ接続
  • ネットワークが繋がっていない別開発拠点のPCへのリモートデスクトップ接続

概要

  1. リモートサーバのsshポート[22]をssh リモートポートフォーワーディングで踏み台Linuxサーバのポート[2222]として転送
  2. 踏み台Linuxサーバのポート[2222]をssh ローカルポートフォーワーディングでローカルのポート[2223]として転送
  3. ローカルPCのポート[2223]へアクセスすることにより、リモートサーバのsshへ接続可能
image

※ どこがリモートポートフォーワーディングで、どこがローカルポートフォーワーディングか混乱しやすいので気を付けて下さい。

リモートサーバから踏み台Linuxサーバへの接続

基本的な接続についてはSSH を使用した Linux インスタンスへの接続を参照下さい。

  • プライベートキーファイルをリモートサーバへ転送します。
    この手順ではプライベートキーファイルを~/.ssh/key-pair-sample.pemとします。
  • リモートサーバのsshポート[22]をssh リモートポートフォーワーディングでEC2のポート[2222]として転送します。

EC2のパブリックIPをxxx.xxx.xxx.xxxとします。
EC2はubuntuのAMIとします。(amazon linux の場合はユーザ名はubuntuではなくec2-userです。)

ssh -R 2222:localhost:22 -i ~/.ssh/key-pair-sample.pem ubuntu@xxx.xxx.xxx.xxx

接続時の警告を回避するオプションを追加しています。

ssh -t -t -R 2222:localhost:22 -i ~/.ssh/key-pair-sample.pem -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ec2-user@xxx.xxx.xxx

ローカルPCから踏み台Linuxサーバへの接続

  • この解説ではTeratermを使ってまずローカルPCから踏み台Linuxサーバへssh接続されていることを前提とします。
    接続についてはSSH を使用した Linux インスタンスへの接続を参照下さい。
  • EC2のポート[2222]をssh ローカルポートフォーワーディングでローカルのポート[2223]として転送します。
image
image

ポートフォーワーディングを経由してローカルPCからリモートサーバへ接続

  • ローカルポート[2223]へ接続します。
    image

応用

  • リモートデスクトップはTCPの3389番ポートを使用します。
  • 同様の手順で3389番ポートをポートフォーワーディングすればリモート環境のPCへリモートデスクトップ接続することが可能です。

👇参考URL

本記事へのリンク

image.png

https://docs.saurus12.com/tips/ssh_port_forward

[keywords]
ssh ポートフォーワーディング Linux リモートデスクトップ

更新日:2024年02月22日

ITとソフトウェアの人気オンラインコースHP Directplus -HP公式オンラインストア-