外出先からスマホ(Android)で自宅の仮想マシンにアクセスする手順です。
接続元がWindows、接続先がLinuxの場合で進行します。
以下、手順です。
VirtualBoxにUbuntuをインストールします。
⇒ VirtualBoxにUbuntuをインストールする手順(初心者向け)
Ubuntuを起動後、デバイスタブ>「GuestAdditions CDイメージを挿入」をクリックして、Vboxを実行>再起動します(下記画像)※再起動後にCDは取り出す
再起動後、ターミナルを開いて下記を順番に実行します。
$ sudo apt update
$ sudo apt dist-upgrade
$ sudo apt autoremove
Ubuntuにはsshサーバーが入っていないので$sudo apt install openssh-server でインストール。※この時にルートでのログインを許可しない場合は $sudo vim /etc/ssh/sshd_config で設定ファイルを開いてPermitRootLoginをnoとして保存。
$systemctl restart ssh で再起動します。
この段階だと$ ifconfig を開いてもIPアドレスが割り当てられていないのでシャットダウン(下記画像)
VirtualBoxの設定画面を開いてブリッジアダプターに変更します。※NATのポートフォワーディングでも接続できますが、今回はブリッジで接続します
起動後、$ ifconfig でIPを確認できます。
画像を確認すると192.168.16.30が割り当てられていることが確認できます。
この段階でWindowsからVirtualBoxで作成した仮想マシンにSSH接続ができますので、「Tera Term」をインストールして接続します。
下記左側の画像を参考にして入力してOK。
これで下記右側の画面が開き接続が確認できます。
続いて、
(1)Ubuntuで $ ssh-keygen として~/.sshにid_rsaとid_rsa.pub鍵を生成(~/.sshがない場合は事前に作成)※パスワードが短すぎるとエラーになります
(2)作成したid_rsa.pubの名前をauthorized_keysに変更
(3)$ chmod 0600 authorized_keys
私の場合は、すべてのサーバーで同じ鍵を使用しているのでSCPコマンドでコピーしました。
また作成したid_rsaを、Windowsとスマホ(Android)に移動しておきます。※これはVirtualBoxの共有フォルダを設定すると楽です
あとは鍵認証を有効にするためにsshd_configを編集するだけなのですが、vimも入っていなかったのでインストール(下記画像)
$ cd /etc/ssh ⇒ $ sudo vim sshd_configで下記のように編集します
PasswordAuthentication no
PermitRootLogin no
「Tera Term」で鍵を使用した認証のみ有効を確認します。
続いて、外出先からVirtualboxにアクセスできるようにするために、PPTPなどでネットワークを通します
※参考:外出先からAndroid(スマホ)を使用して自宅のPCにアクセスする方法
AndroidからSSHで接続するために「JuiceSSH」をインストール(秘密鍵を使いやすいのでコレを使用)
JuiceSSH ⇒ https://play.google.com/store/apps/details?id=com.sonelli.juicessh&hl=ja
接続先情報と認証情報(鍵)を入力してVPN経由なら外出先からも接続可能(VPS経由もあり)
なんとなく書こうかなと思いはじめたのですが…スクショ取りながらだと4時間もかかりました…暇な方は試してみてください。
以上です。