0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

踏み台サーバを使ってOCIプライベートComputeインスタンスに接続する方法

Last updated at Posted at 2025-01-18

本ブログは、オラクル・クラウドの個人ブログの1つです。

初めに

オンプレミス環境からプライベートサブネット内のOCI(Oracle Cloud Infrastructure)Computeインスタンスに接続する方法はいくつかあります。その中でも、踏み台サーバを経由する方法は最も一般的です。接続方法としては、主に以下の2つのパターンがあります。

方法-1. 二段階のログイン

  • 踏み台サーバはLinuxの場合:
    image.png
  • 踏み台サーバはWindowsの場合:
    image.png

メリット:
✅ 非常にシンプル。
✅ 踏み台サーバーへのログインが必要な作業に適している。

デメリット:

  • 2回のログインが必要で、手間がかかる。
  • 3389番ポートなどをパブリックに公開する必要がある。
  • 接続先がLinuxの場合、秘密鍵を踏み台サーバに配置する必要がある。

NSGの関連設定

紐づいているインスタンス 方向 ソース・宛先CIDR プロトコル 宛先ポート 説明
踏み台
(Linux)
Ingress ソース: Client Public IP TCP 22 接続端末から踏み台へのSSHを許可
踏み台
(Linux)
Egress 宛先: 接続先のPrivate IP TCP 22 踏み台から接続先へのアクセスを許可
踏み台
(Windows)
Ingress ソース: Client Public IP TCP 3389 踏み台から接続先へのアクセスを許可
踏み台
(Windows)
Egress 宛先: 接続先のPrivate IP TCP 3389 踏み台から接続先へのアクセスを許可
ターゲット(Linux) Ingress ソース: 踏み台のPrivate IP TCP 22 踏み台からのアクセス(SSH)を許可
ターゲット
(Windows)
Ingress ソース: 踏み台のPrivate IP TCP 3389 踏み台からのアクセス(RDP)を許可

方法-2. SSHポート転送

踏み台サーバは Linux の場合、SSHポート転送の手段もあります。

image.png

メリット:
✅ 二段階のログインが不要になり、作業の手間を軽減できる。
✅ 公開する必要があるポートは22番のみで済むため、よりセキュアな接続が可能
✅ 接続先がLinuxの場合、秘密鍵を踏み台サーバに配置する必要がない。
✅ 踏み台サーバをLinuxで構築すれば、Windowsサーバを使用するよりコストを抑えられる。

a) Linux サーバにSSH接続する場合

  • Step-1) 踏み台サーバとターゲットVMの秘密キーをローカル端末に保存する。
    ※、ターゲットVMの秘密キーを踏み台サーバに保存しないことを推奨する。
  • Step-2) 次のコマンドを使用してSSHポート転送を実行する。(Tera Termの画面からも実行できるが、個人的にはコマンドの方が好み)
ssh -L 22:<linux_private_ip>:22 opc@<bastion_public_ip> -i C:\Users\<username>\.ssh\<bastion_private_key>
  • Step-3) 上記のステップが成功したら、別のセッションを開いて、次のコマンドでターゲットに接続する。
ssh localhost -l opc -i C:\Users\<username>\.ssh\<target_private_key>

b) Windows サーバにRDP接続する場合

  • Step-1) 踏み台サーバの秘密キーをローカル端末に保存する。
  • step-2) 次のコマンドでSSHポート転送を実施する(上記のLinuxの方法と同様ですが、ポートのところを3389に変更してください)。
ssh -L 3389:<windows_private_ip>:3389 opc@<bastion_public_ip> -i C:\Users\<username>\.ssh\<bastion_private_key>
  • step-3) 上記のステップが成功したら、ローカル端末からRDPを開いて、ホスト名にlocalhostを入力して接続する。

次のエラーが発生した場合

エラー現象:step-3を実施すると、上記エラーが表示される。
エラーメッセージ:「既に進行中のコンソールセッションがあるため、リモートコンピューター上の他のコンソールセッションに接続できませんでした。」
原因:ローカルポート番号3389が既に使われています。
対策:次のようにローカルのポートを13389の番号に置き換えてください。

  • step-2) ssh -L 13389:<windows_private_ip>:3389 opc@<bastion_public_ip> -i C:\Users\<username>\.ssh\<bastion_private_key>
  • step-3) ローカル端末からRDPを開いて、ホスト名にlocalhost:13389を入力して接続する。

NSGの関連設定

紐づいているインスタンス 方向 ソース・宛先CIDR プロトコル 宛先ポート 説明
踏み台
(Linux)
Ingress ソース: Client Public IP TCP 22 接続端末から踏み台へのSSHを許可
踏み台
(Linux)
Egress 宛先: Private Subnet CIDR TCP 22
3389
踏み台から接続先へのアクセスを許可
ターゲット(Linux) Ingress ソース: 踏み台のPrivate IP TCP 22 踏み台から接続先へのアクセス(SSH)を許可
ターゲット
(Windows)
Ingress ソース: 踏み台のPrivate IP TCP 3389 踏み台から接続先へのアクセス(RDP)を許可

踏み台サーバを経由する方法以外にも、さまざまな手段があります。詳細については、次の記事をご参照ください。
プライベート・サブネット内のOCI Computeインスタンスに接続する方法のまとめ

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?