SSHでのリモート環境からイントラネット(社内)Webサイト閲覧方法

SSH接続は開放しているけど、セキュリティの都合で公開していないイントラネット環境のサイトを外部PC(Windows PCなど)から閲覧する方法です。

画像1

前提と環境

・Windows PC
・ OpenSSH(Windows ver.1803以降には標準でインストールされています)インストール済み
・ SSH接続環境構築済みであること

# インストール済みか確認
$ ssh -V
OpenSSH_for_Windows_8.1p1, LibreSSL 2.9.2

また、C:\Users\Owner\.ssh 配下にssh鍵(id_rsa)があることを確認してください。
ない場合は、ssh-keygenまたはputtygenで作製してください。

SSH接続について

windowsだとputty, teratermでSSH接続していましたが、今回はOpenSSHで設定ファイル(C:\Users\Owner\.ssh\config)を書いて接続します。

Host your_host_name # あなたのホストサーバの名前
 User your_user_name # あなたのユーザ名
 HostName actual_host_name #(例 192.168.1.111 or example.com など)
 IdentityFile ~\.ssh\id_rsa.pem

と書いて、コマンドプロンプトまたはパワーシェルで次のコマンドを起動します。

ssh your_host_name
[your_user_name@actual_host_name ~]$

とシェルが表示されればSSH接続ができています。
ちなみに、コマンドオプションとの対応はこちらです。

ssh -i ~\.ssh\id_rsa.pem your_user_name@actual_host_name

イントラネットにあるサイト閲覧

設定ファイルに1行追加します。

Host your_host_name
 User your_user_name
 HostName actual_host_name(例 192.168.1.111 or example.com など)
 IdentityFile ~\.ssh\id_rsa.pem
 # 以下追加分 もし踏み台を用意している場合はlocalhostinternal.site.comなどにかえてください。
 LocalForward 8000 localhost:80 

保存した後にssh接続をしてから、ブラウザでlocalhost:8000でアクセスします。

画像2

すると、イントラネットにあるサイトが自宅のPCから閲覧できるようになります。

ちなみに、設定ファイルの内容をコマンドオプションで書くと次のようになります。

ssh -i ~\.ssh\id_rsa.pem -L 8000:localhost:80 your_user_name@actual_host_name

クライアント側のポート8000でイントラネットのlocalhostの80番ポートに疎通することになります。

この記事が気に入ったらサポートをしてみませんか?