ラズベリーパイにリモートアクセスできるように設定します。
リモートアクセスのパターン
今回の記事では、ラズベリーパイにリモートアクセスできるように設定をしてみます。
必ずしも今回の設定を行う必要はありません。これから電子工作を行いますが、作業場所を確保するときに周辺機器を外してラズベリーパイ単体で動作させたいケースが出てくるかもしれません。そこで以下の接続タイプを見て、用意しておいた方がよさそうな設定してみてください。
最初に、今回の記事で説明するリモートアクセスのパターンを説明します。
設定1)ターミナル接続設定
デスクトップタイプ機器構成でシェルを使う場合、デスクトップ画面でLXterminalを起動してコマンド操作してきました。この操作を以下のようにリモートでアクセスできるように設定します。
この設定を行うと、リモートから電源OFFを含むさまざまな制御ができます。デスクトップタイプ機器構成の場合でも、ディスプレイ・キーボード・マウスを外して運用できます。外して運用しても、もちろんNode-REDも使えますので、設定しておいても損はないと思います!
設定2)デスクトップ接続設定
リモートでデスクトップ画面にアクセスできるように設定します。
この設定を行うと、ディスプレイが接続されていないリモート接続タイプの機器構成でも、デスクトップ画面にアクセスできるようになります。
また、WindowsやmacOSの他に、iOSやAndroidからもデスクトップに接続できるようになります。
なお、デスクトップ画面にアクセスするための専用のアプリをインストールする必要があります。このアプリは、Windows、macOS、iOS、Android用にそれぞれリリースされています。
これから以下の順番で説明します。
- 設定1)ターミナル接続設定
- 設定2)デスクトップ接続設定
- 設定2-1)デスクトップタイプ機器構成の設定
- 設定2-2)リモート接続タイプ機器構成の設定
- 設定2-3)リモート接続アプリインストール
- 設定2-3)リモート接続アプリの使い方
- 設定2-4)リモート接続サービス停止
設定1)ターミナル接続設定
デスクトップタイプ機器構成のデフォルト状態では、セキュリティの観点から、リモートでアクセスできない設定になっています。
そこで、最初にRaspberry Pi OSの設定でリモートからターミナルでアクセスできるように設定を変更します。そのあとWindowsやmacOSからターミナルアプリでリモートアクセスします。以下に設定、アクセス手順を説明します。
リモートアクセス設定
Raspberry Pi OSのデスクトップ画面、左上のラスベリーパイメニューから、「設定」→「Raspberry Piの設定」を選択します。
設定ダイアログが表示されますので、「インターフェイス」タブを表示します。一番上の「SSH」がリモートからターミナルでアクセスできるようにする設定です。ON/OFFが設定できますので、スイッチアイコンをクリックしてONにします。その後、ダイアログのOKボタンをクリックして設定完了です。(再起動の必要はありません)
「SSH」は「Secure Shell」の略で、日本語では「安全なシェル」という意味でしょうか。「シェル」は第14回の記事で説明しました。その「安全版」ってどういう意味なのかちょっと不思議ですよね。
Raspberry Piのシェルにリモートからアクセスする場合、コマンドや処理結果がネットワーク上をデータとして流れます。このデータの中には、パスワードなどの重要な情報も含まれている可能性があります。そこで、リモートからシェルにアクセスする場合は、やり取りするデータを暗号化する必要が出てくるわけです。
SSHでは、リモートからアクセスする場合、ネットワーク上に流れるデータを暗号化して、セキュリティを高めています。
Windows/macOSからのリモートアクセス
次に、WindowsやmacOSからSSHを使って、Raspberry Pi OSのシェルにリモートアクセスしてみます。
Windowsの場合
Windowsからリモート接続するには、「コマンドプロンプト」を使用します。コマンドプロンプトは、Windowsデスクトップ左下の「Windowsメニュー」→「Windowsシステムツール」にあります。
以下のようなウィンドウが表示されますので、ssh ユーザ名@raspberrypi.local
と入力してリターンキーを押します。
以下のようなメッセージが表示されますので、「yes」と入力してリターンキーを押します。(初めてSSHでリモート接続する場合、本当に接続してよいか、という確認があります)
もし、この段階でエラーメッセージが表示されて次に進めないようでしたら、この記事の最後にある「raspberrypi.localで接続できない場合」を試してみてください。
続いてパスワードを入力してリターンキーを押します。この場面ではパスワードを入力しても画面への反映はありません。
パスワードが合っていると、以下のようにラズベリーパイへの接続が完了します。ユーザ名@raspberrypi:~ $
と表示されればOKです。
Raspberry Pi OSのリモート接続を止める場合は、以下のようにexit
と入力します。exitを入力するとRaspberry Pi OSへの接続が切れて、コマンドプロンプトが終了します。(ラズベリーパイは動作したままです)
ユーザ名@raspberrypi:~ $ exit
また、Raspberry Pi OSの動作を停止する場合は、以下のようにsudo poweroff
と入力します。(システムが停止するのみで物理的な電源はONのままです。完全に停止するには物理的な電源を外す必要があります)
ユーザ名@raspberrypi:~ $ sudo poweroff
macOSの場合
macOSからリモート接続する場合「ターミナル」というアプリを使用します。
「アプリケーション」フォルダ → 「ユーティリティ」フォルダの中に「ターミナル」というアプリがありますので起動します。
ターミナルが起動するとコマンドを入力するウィンドウが表示されますので、以下のようにssh ユーザ名@raspberrypi.local
と入力してリターンキーを押します。
以下のようなメッセージが表示されますので、「yes」と入力してリターンキーを押します。(初めてリモート接続する場合、本当に接続してよいか、という確認があります)
続いて、パスワードを入力してリターンキーを押します。この場面ではパスワードを入力しても画面への反映はありません。
パスワードが合っていると、以下のようにラズベリーパイへの接続が完了します。ユーザ名@raspberrypi:~ $
と表示されればOKです。
Raspberry Pi OSのリモート接続を止める場合は、以下のようにexit
と入力します。exitを入力するとRaspberry Pi OSへの接続が切れます。(ラズベリーパイは動作したままです)
ユーザ名@raspberrypi:~ $ exit
また、Raspberry Pi OSの動作を停止する場合は、以下のようにsudo poweroff
と入力します。(システムが停止するのみで物理的な電源はONのままです。完全に停止するには物理的な電源を外す必要があります)
ユーザ名@raspberrypi:~ $ sudo poweroff
設定2)リモートデスクトップ接続設定
設定の前に用語を説明します。
リモートでデスクトップに接続する機能は「VNC」と呼ばれています。「VNC」は「Virtual Network Computing」の略で、日本語では「ネットワーを介して、遠隔でコンピュータを操作」というような意味になります。
Raspberry Pi OSのデフォルト設定では、セキュリティの観点からリモートデスクトップへの接続はできないようになっています。つまり、「VNC」機能はデフォルトでOFFになっています。
そこで、最初に「VNC」機能をONに設定します。この設定は、デスクトップタイプ機器構成とリモート接続タイプの機器構成では設定手順が異なりますので、別々に説明します。デスクトップタイプは「設定2-1」、リモート接続タイプは「設定2-2」で説明しています。
VNCを有効にすると、Windows・macOS・iOS・Androidからラスベリーパイのデスクトップにアクセスできますが、専用のアプリケーションが必要です。そこで、「設定2-3」でアプリインストール手順を説明したあと、「設定2-4」で接続方法を説明します。
設定2-1)デスクトップタイプ機器構成のVNC設定
Raspberry Pi OSのデスクトップ画面、左上のラスベリーパイメニューから、「設定」→「Raspberry Piの設定」を選択します。
設定ダイアログが表示されますので、「インターフェイス」タブを表示します。上から2番目の設定項目が、最初に説明した「VNC」の設定です。ON/OFFが設定できますので、スイッチアイコンをクリックしてONにします。その後、ダイアログのOKボタンをクリックして設定完了です。
なお、リモートからRaspberry Pi OSのデスクトップに接続したとき、リモートで表示される画面(WindowsやmacOS上で表示されるRaspberry Pi OSのデスクトップ画面)は、ラズベリーパイ本体に接続されているディスプレイと同じ解像度になります。
例えば、ラスベリーパイ本体にFull HD(1920 x 1080)のディスプレイが接続されている場合、リモートで表示されるデスクトップ画面も同じ解像度になります。
なお、ディスプレイを接続していない状態では、ディスプレイ解像度が決まらないため、リモートでデスクトップに接続できません。
そこで、物理的にディスプレイが接続されていない状態でも、以下のように仮想的にディスプレイを接続している状態に設定することができます。この設定は、ディスプレイが接続されていないときに有効になりますので、設定しておいた方がよいでしょう。(物理的にディスプレイが接続されているときは、そのディスプレイの解像度になります)
設定ダイアログの「ディスプレイ」タブを表示します。この中の「ヘッドレス解像度」という項目が、仮想的に接続するディスプレイの解像度の設定になります。
低い解像度の場合は操作画面が狭くなりますので、「1920×1080」か「1280×720」あたりがよいと思います。ただ、大きくするとデータ転送量が多くなりレスポンスが悪くなることがありますので、いずれかの選択肢で試して決めてみてください。
OKボタンをクリックすると再起動の確認ダイアログが表示されます。設定を有効にするために「はい」を選択して再起動してください。
これで設定完了です。再起動後、画面右上に以下のようなVNCのアイコンが表示されていればOKです。
続いて、リモートでデスクトップにアクセスするためのアプリケーションのインストールが必要になりますので、「設定2-3)リモート接続アプリインストール」に進んでください。
設定2-2)リモート接続タイプ機器構成のVNC設定
最初にWindowsのコマンドプロンプト、macOSのターミナルからラズベリーパイに接続します。
接続後、設定コマンドを使用して設定を行います。最初に以下のようにsudo raspi-confg
と入力します。
ユーザ名@raspberrypi:~ $ sudo raspi-config
ターミナルに以下のような画面が表示されます。メニュー項目はキーボードの矢印キーで、「メニュー項目」「Select」「Finish」はTABキーで移動します。
次に、上から3番目の「Interface Options」を矢印キーで選択します。
リターンキーを押すと、以下のようにメニュー項目が表示されますので、「VNC」を選択します。
リターンキーを押すと、NVC機能を有効にするか確認があります。
「はい」が選択されていることを確認してリターンキーを押します。少し待つと以下のように設定完了のメッセージが表示されます。
リターンキーを押すと、メインメニューに戻ります。
リモートでデスクトップにアクセスする場合、基本的に実際にディスプレイを接続する必要がありますが、設定で仮想的にディスプレイを接続した状態に設定することが可能です。
次に、この仮想ディスプレイの解像度を設定します。
上から2番目の「 Display Options」を選択します。
リターンキーを押すと、メニューが表示されますので「VNC Resolution」を選択します。
リターンキーを押すと、以下のように仮想的に接続するディスプレイの解像度を選択するメニューになります。低い解像度の場合は操作画面が狭くなりますので、「1920×1080」か「1280×720」あたりがよいと思います。ただ、大きくするとデータ転送量が多くなりレスポンスが悪くなることがありますので、いずれかの選択肢で試して決めてみてください。
解像度を選択してリターンキーを押すと、設定完了の画面が表示されます。
メインメニューに戻りますので、TABキーで「Finish」を選択します。
再起動の確認がありますので、「はい」を選択します。
ラズベリーパイが再起動しますので、ここでいったんターミナルが切れます。このあと、デスクトップにリモートアクセスします。
リモートでデスクトップにアクセスするためのアプリケーションのインストールが必要になりますので、次の「設定2-3」に進みましょう。
設定2-3)VNC接続アプリインストール
Raspberry Pi OSのデスクトップにリモート接続する場合、「VNC Viewer」というアプリケーションを利用します。それぞれのOSごとにリリースされていますので、以下ので順でインストールします。
Windows
VNC Viewerのダウンロードサイトにアクセスします。
https://www.realvnc.com/en/connect/download/viewer/
Windows版が選択されていることを確認して、ダウンロードボタンをクリックします。
インストーラをダウンロード後、インストールします。インストール手順は通常のアプリケーションと同様のため手順の説明は省略します。
macOS
VNC Viewerのダウンロードサイトにアクセスします。
https://www.realvnc.com/en/connect/download/viewer/
macOS版が選択されていることを確認して、ダウンロードボタンをクリックします。
インストーラをダウンロード後、インストールします。インストール手順は通常のアプリケーションと同様のため手順の説明は省略します。
iOS/Android
iOSの場合は「AppStore」、Androidの場合は「GooglePlay」の「アプリ」から、「VNC Viewer」を検索してインストールします。
設定2-3)リモート接続アプリの使い方
インストールできたら、VNC Viewerを起動します。
以下に、「Windows版・macOS版」と「iOS版・Android版」に分けて説明します。
Windows版・macOS版
スクリーンショットはmacOS版ですが、Windows版も手順は同じです。
初回起動時は、使用許諾ライセンスの確認があります。以下のダイアログで「I have read and accept these terms and conditions」(ライセンスを確認しました)にチェックをつけて、OKボタンをクリックします。
以下の初回起動画面が表示されますので、「Use VNC without signing in」(サインインしないで使用)をクリックします。
以下のような初期画面になりますので、上部接続先入力のところに「raspberrypi.local」と入力してリターンキーを押します。
もし、この段階でエラーメッセージが表示されて次に進めないようでしたら、この記事の最後にある「raspberrypi.localで接続できない場合」を試してみてください。
初めて接続するラズベリーパイの場合は、以下の確認ダイアログが表示されますので、「Continue」をクリックします。(このダイアログは2回目以降の接続では表示されません)
ラズベリーパイのユーザ名、パスワードを入力して、「Remember Password」にチェックをつけます。ここのチェックをつけると次回接続時からパスワードを入力する必要はなくなります。入力内容を確認後、OKボタンをクリックします。
ユーザIDとパスワードが正しければ、ラズベリーパイのデスクトップ画面が表示されます。このあとは通常のRaspberry Pi OSのデスクトップと同様に使用できます。
ラズベリーパイとの接続を切る場合は、VNC Viewerのウィンドウを閉じます。また、ラスベリーパイのシステムを止める場合は、Raspberry Pi OSデスクトップのラズベリーパイメニューから「ログアウト」を選択し、「Shutdown」をクリックします。
なお、VNC Viewerは一度接続したラズベリーパイは以下のように覚えてくれています。次回以降接続する場合は、このアイコンをダブルクリックするとすぐに接続できます。
iOS版・Android版
スクリーンショットはiOS版ですが、Android版も手順は同じです。
VNC Viewreアプリを起動すると、以下の左の画面が表示されます。右の画面になるまで左に何回かスワイプします。右側の画面で「Get Started」をタップします。
以下の画面が表示されますので、右上の「+」アイコンをタップします。
接続先設定の画面になります。「Address」に「raspberrypi.local」、「Name」に何か名前を入れます。この「Name」に設定した文字列は、接続済みのラズベリーパイがリストされるときに表示されます。
以下のような画面が表示されますので、中央の「Connect」ボタンをタップします。
初めて接続する場合、以下のような画面が表示されますので、右上の「Continue」をタップします。次回以降の接続時はこの画面は表示されません。
次に接続情報を設定します。ユーザ名、パスワードと必要に応じて「Remember Password」(パスワードを保存する)を設定し、最後にContinueをタップします。
ユーザ名、パスワードが正しいとRaspberry Pi OSのデスクトップ画面が表示されます。
タブレットにマウスを接続している場合は通常のデスクトップ操作と同じです。指で操作する場合、クリック操作はタップ、マウスカーソル移動はドラッグになります。
なお、ラズベリーパイの接続を切る場合は、右上のメニューマークをタップします。タップすると上の画面のようなメニューが表示されますので、「×」をタップすると接続が切れます。
一度接続すると、以下のように接続済みのラズベリーパイのサムネが表示されます。次回以降はこのサムネをタップするとすぐに接続できます。
設定2-4)VNCサービス停止
VNC機能を動作させるために、Raspberry Pi OS上ではVNCサーバが動作しています。
リモートでデスクトップにアクセスしないときは、CPUリソースがもったいないので以下の手順でVNCサーバを停止しておきましょう。以下にデスクトップタイプ機器構成とリモート接続タイプ機器構成の手順を説明します。
デスクトップタイプ機器構成の場合
以下のいずれかの手順でVNCサービスを停止します。
「Raspberry Pi OSの設定」による停止
VNC機能をONしたときと同様の手順で、VNC機能をOFFにします。
- Raspberry Pi OSのデスクトップ画面で、ラズベリーパイメニューから「設定」→「Raspberry Piの設定」を選択して設定ダイアログを表示ます
- 「インターフェイス」タブの「VNC」をOFFにします
VNCメニューによる停止
ツールバーの「VNC」アイコンをマウスで右クリックします。以下のようにメニューが表示されますので、一番下の「Stop VNC Server」を選択します。
確認ダイアログが表示されますので、OKボタンをクリックします。
リモート接続タイプ機器構成の場合
ターミナルでRaspberry Pi OSに接続して、以下のコマンドを入力します。
ユーザ名@raspberrypi:~ $ sudo raspi-config
「Interface Options」を選択してリターンキーを押します。
「VNC」を選択してリターンキーを押します。
VNCを有効にするかの設定です。右矢印キーを押して「いいえ」を選択します。
これでVNCが無効になりました。リターンキーを押して終了します。
raspberrypi.localで接続できない場合
接続先を「raspberrypi.local」と指定すると「見つかりません」というエラーになる場合は、IPアドレスで接続する必要があります。
最初に以下の手順でIPアドレスを確認してみてください。
Raspberry Pi OSのデスクトップ画面でLXTerminalを起動します。
次に、以下のようにコマンドを入力します。hostnameの後は、スペース、ハイフン(マイナス記号)、ローマ字大文字のアイです。
ユーザ名@raspberrypi: ~ $ hostname -I
入力すると以下のようにIPアドレスが表示されます。
ユーザ名@raspberrypi: ~ $ hostname -I
192.168.0.10
次に、Windowsのコマンドプロンプト、macOSのターミナルから接続する場合は、以下のようにコマンドを入力します。
ssh ユーザ名@IPアドレス
VNC Veiwerから接続する場合は、接続先にIPアドレスを入力してリターンキーを押します。
更新履歴
日付 | 内容 |
---|---|
2022.4.29 | 新規投稿 |