背景
Raspberry Piにリモートデスクトップを接続するにあたり、ngrokでファイヤウォールを越えつつsshで暗号化して通信する方法が分かったので、備忘録として記事に残します。使ったもの
- Raspberry Pi OSで動くRaspberry Pi
今回は2021-05-07版のRaspberry Pi OSをRaspberry Pi 3bで動かしました。 - Remmina
Ubuntuに標準でインストールされています。
利用したUbuntuは20.04です。
Raspberry Piの事前準備
ngrokでssh接続できるように設定
下記の記事に従って設定してください。固定ipが無いmvno配下のraspberry piに、ngrokで割り振られるurlでsshログインする方法
パスワード無しでsshできるように設定
下記の記事に従って設定してください。鍵を利用してパスワード無しで(Raspberry Piに)sshログイン
リモートデスクトップサーバーのプログラムをインストール
リモートデスクトップでログインできるように、Raspberry PiにxrdpというRDP形式でリモートデスクトップでのログインを可能にするプログラムをインストールします。下記のコマンドをRaspberry Piで実行してください。
sudo apt install xrdp
上記コマンドでxrdpをインストールすればRDPでRaspberry Piに接続可能な状態になります。
試しにWiFi内でリモートデスクトップ接続
Raspberry Piと同じWiFiに接続したUbuntuのRemminaに下記のように情報を設定すれば、リモートデスクトップ接続できます。Remminaで追加ボタンを押して設置画面を開きます。
Raspberry PiのWiFi内のIP、ユーザー名(pi)、パスワード(初期はraspberry)を入力し、「保存して接続」を押します。
設定が期待通りにできていればリモートデスクトップの通信によりRaspberryPiのデスクトップが表示されます。
ngrokのssh通信を介してリモートデスクトップ接続
さて、この記事の目的であるngrokのssh通信を通じたリモートデスクトップの接続を行います。まず、ngrokでRaspberry Piのssh接続のためのアドレスを確認します。
https://dashboard.ngrok.com/endpoints/status
このアドレスはngrokの無料版だとRaspberry Piでのngrokコマンド実行の度にポート番号が変わります。
アドレスを変えたくない場合は、ngrokに課金すると固定できるようです。
この情報をRemminaの「SSHトンネル」のタブに入力します。
- 接続名に適当な名前を付けます。
- RDPを選びます。
- SSHトンネルのタブを選択します。
- 「SSHトンネルを有効にする」ボタンを押して黒く(選択状態に)します。
- SSHトンネルで「カスタム」を選びます。
- カスタムのurlとして、Remminaで確認したurlから「tcp://」を消したものをRemminaのSSHトンネルのカスタムに記述します。(コピペして「tcp://」を消してください。)
- SSH認証のユーザー名にRaspberry Piのユーザー名を入力します。標準はpiです。
- id_rsa.pubでRaspberry Piにログインできるようにしているなら、公開鍵(自動)を選択します。(それ以外のファイル名の鍵を利用している場合は、SSH identity fileを選び、鍵ファイルを指定してください。)
まだ「保存して接続」は押さず、次の手順に進んでください。
SSHトンネルの情報を入力できたら、基本タブにも情報を入力します。
- 「基本設定」のタブを選びます。
- サーバー名はlocalhost、ユーザー名とパスワードはログインするRaspberry Piのものを入力します。
SSHトンネルによりRaspberry Piのポートを手元のPCに展開(ポートフォワード)するため、サーバー名はlocalhost(もしくは127.0.0.1)にします。 - 基本設定とSSHトンネルの情報を入力できたら「保存して接続」を押します
成功するとngrokのssh経由でRaspberry Piにリモートデスクトップでログインできます。
0 件のコメント :
コメントを投稿