SSHでのリモート環境からイントラネット(社内)Webサイト閲覧方法
SSH接続は開放しているけど、セキュリティの都合で公開していないイントラネット環境のサイトを外部PC(Windows PCなど)から閲覧する方法です。
前提と環境
・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
# 以下追加分 もし踏み台を用意している場合はlocalhostをinternal.site.comなどにかえてください。
LocalForward 8000 localhost:80
保存した後にssh接続をしてから、ブラウザでlocalhost:8000でアクセスします。
すると、イントラネットにあるサイトが自宅のPCから閲覧できるようになります。
ちなみに、設定ファイルの内容をコマンドオプションで書くと次のようになります。
ssh -i ~\.ssh\id_rsa.pem -L 8000:localhost:80 your_user_name@actual_host_name
クライアント側のポート8000でイントラネットのlocalhostの80番ポートに疎通することになります。