Mac から Raspberry Pi への VNC 接続を行なった際に下記のエラーが出て困ったので、備忘録として原因と対処法についてまとめておきます。
リモートコンピュータのソフトウェアが、このバージョンの画面共有と互換性がないようです。
エラー発生時には下の図のようなウィンドウが表示されるはずです。
![]()
私が原因調査や対策を行なった際に使用した Raspberry Pi や Mac は下記になります。
- Raspberry Pi 4 Model B(4GB RAM)
- macOS BigSur
Contents
原因
まず前提として、VNC とは一口に言っても、VNC には多くの派生版が存在するようです。
Real VNC であったり、Tiger VNC、さらには Mac の Finder の画面共有も、それぞれが VNC の派生版の1つと言って良いと思います(それぞれで実装方法が異なる)。
Raspberry Pi OS にプリインストールされている VNC サーバーは Real VNC になります。
そして、上記のエラーは、Raspberry Pi の VNC サーバーが Real VNC であるのに対し、その VNC に接続しようとしている VNC クライアントが Real VNC 以外の場合に発生します。
![]()
Mac の Finder の画面共有は Real VNC ではないので、Mac の Finder の画面共有を利用して Raspberry Pi に接続しようとした場合、このエラーが発生することになります。
この原因に対し、主な対処法は下記の2つになると思います。
- Real VNC の VNC クライアントを利用する
- Raspberry Pi の VNC 認証オプションを変更する
対処法1:Real VNC の VNC クライアントを利用する
2つの対処法それぞれにはメリットとデメリットがあります。
それらを踏まえつつ、2つの対処法について解説していきます。
スポンサーリンク
この対処法のメリット
個人的にオススメなのは前者の「Real VNC の VNC クライアントを利用する」です。
どうも、VNC 接続では、同じ VNC を利用していないと、通信データの暗号化が行われないようです。
参考:https://blog.soracom.com/ja-jp/2021/08/16/best-practice-for-vnc-with-data-encrypt/
逆に同じ VNC を利用することで通信データを暗号化することができます。
通信データは暗号化した方が安全ですので、接続先の Raspberry Pi の VNC サーバーに合わせて Mac が使用する VNC クライアントを Real VNC のものにしてエラーを解決する方がオススメです。
また、特に設定も必要なくアプリをインストールするだけで利用できるので、手順としても、こちらの方が楽だと思います。
この対処法のデメリット
デメリットは、別途 VNC クライアントのアプリをインストールする必要があるくらいだと思います。
スポンサーリンク
この対処法の手順
Real VNC の VNC クライアントを利用して VNC 接続を行う手順は下記で解説していますので、この対処法でエラーを解決したい場合は下記ページを読んでいただければと思います。OS のインストールから説明していっているので、必要に応じて適宜スキップしながら読んでください。
簡単にいってしまうと、要は VNC Viewer というアプリをインストールし、そのアプリから IP アドレスやホスト名を指定して Raspberry Pi に VNC 接続してやれば良いだけです。
スポンサーリンク
対処法2:Raspberry Pi の VNC 認証オプションを変更する
続いて、対処法の2つ目について解説していきます。
スポンサーリンク
この対処法のメリット
後者の「Raspberry Pi の VNC 認証オプションを変更する」の方は、別途アプリをインストールする必要がなく、Mac の Finder から VNC 接続できるというメリットがあります。
この対処法のデメリット
ですが、その一方で、通信データが暗号化されないというデメリットがあります。このデメリットが大きいので、個人的には前者の Real VNC の VNC クライアントを利用する の方をオススメしています。
前述の通り、VNC 接続では同じ VNC を利用していないと通信データの暗号化が行われないようです。
VNC 接続で Mac から Raspberry Pi に遠隔操作を行う際には、どういった操作が行われたかの情報がデータとして Mac から Raspberry Pi に送信されることになります。そして、その送信されてきたデータに基づいて Raspberry Pi が動作することになります。
![]()
その送信されるデータには、どのキーボードが押されたか、どの位置にマウスカーソルが移動されたか、などの情報が含まれます。データが暗号化されていれば、その情報が読み取れないようなデータに変換されて通信が行われますが、暗号化されていなければ、その情報がそのままの状態でデータとして通信されてしまうことになります。
実際に、VNC 接続を通して遠隔操作を行った際に送信されたデータをキャプチャした結果が下記となります(Mac の Finder の画面共有から Raspberry Pi に VNC 接続して遠隔操作)。
![]()
これ見たらキーボードの x が押されたって分かっちゃいますよね…。
つまり、Mac で Raspberry Pi の遠隔操作によりキーボードでパスワードなどを入力した場合、その情報が他の誰かに盗み見されてしまう可能性があります。
![]()
同一ネットワーク内に存在する端末が Mac と Raspberry Pi しかないのであれば問題ないかもしれませんが、通信データが暗号化されていることに越したことはないと思いますので、2つの対処法における前者の Real VNC の VNC クライアントを利用する の方がオススメです。
スポンサーリンク
この対処法の手順
ですが、Finder の画面共有を利用して Raspberry Pi に VNC 接続したいという方もおられると思いますので、Finder の画面共有を利用した際に発生するエラーを解消するための設定方法も解説しておきたいと思います。
この設定を行う方法としては、下記の2つが挙げられます。
Raspberry Pi の画面を表示できるディスプレイや、Paspberry Pi を操作するためのマウスやキーボードがあるのであれば前者の方がオススメです。もし、これが用意できないのであれば、後者の方法で手順を進めていく必要があります。
ご自身の環境に合わせて上記のどちらか一方を選択し、手順を進めていってください。
Raspberry Pi を直接操作して設定を行う
まずは直接 Raspberry Pi を操作して VNC の設定を変更していきます。
最初に、VNC の有効化を行います。
左上の Raspberry Pi のアイコンをクリックし、表示されるメニューから Preference → Raspberry Pi Configuration を選択します(日本語化されている方は項目名等は日本語に読み替えて or 場所から判断して手順を進めていただければと思います)。
![]()
すると、下の図のような画面が表示されるので、Interfaces タブをクリックし、さらに VNC を Enabled に設定し、OK ボタンをクリックします。
![]()
右上のバーに VNC アイコンが表示されるようになれば VNC の有効化成功で、これにより VNC サーバーが起動したことになります(図では黒背景ですが、おそらく白背景のものが表示されるはずです)。
![]()
続いて、表示された VNC アイコンをクリックして VNC Server ウィンドウを表示し、さらに右上のメニューボタンをクリック、続いて Options をクリックします(途中でパスワード入力が促された場合はパスワードを入力してください)。
![]()
すると、下の図のようなウィンドウ表示されると思います。このウィンドウから Raspberry Pi の VNC 認証オプションの設定変更を行うことができます。
![]()
Finder の画面共有を利用して Raspberry Pi に VNC 接続できるようにするためには、ここで下記の2つの変更を行う必要があります。
EncryptionをPrefer offに設定- 暗号化できなくても接続できるようにする
AuthenticationをVNC passwordに設定- 認証方法を VNC 専用のものにする
上記設定が完了すれば、OK ボタンをクリックします。
OK ボタンをクリックすれば下の図のようなパスワードの設定画面が表示されます。ここでは、VNC 接続時に使用したいパスワードを入力します。VNC 接続する際に必要になるパスワードになりますので、必ず入力したパスワードは覚えておいてください。
パスワードの入力が完了すれば(確認用パスワードの入力も含めて)、OK ボタンを押します。
![]()
続いて下の図のような画面も表示されますが、ここも OK ボタンを押して進めます。
![]()
以上で、Finder の画面共有から Raspberry Pi への VNC 接続を行うための設定は完了です!最後に Raspberry Pi を再起動すれば、その設定が反映されます(VNC の再起動でも良い)。
あとは実際に Mac の Finder の画面共有を利用して Raspberry Pi に VNC 接続すれば良いだけです。
接続手順は Finder の画面共有からの VNC 接続の確認 で解説していますので、必要に応じて Finder の画面共有からの VNC 接続の確認 までスキップしていただければと思います。
ここで1点補足しておくと、VNC Server の設定時に変更した Encryption は暗号化を行うかどうかの設定になります。Encryption を Always on にしておくと VNC 接続時の通信データの暗号化が常に行われるようになります。が、通信データが暗号化できないような場合は VNC 接続ができないようになってしまうようです。
前述の通り、Mac の Finder の画面共有から Raspberry Pi に VNC 接続を行う際には暗号化が行われませんので、Encryption を Always on にしておくと、Mac の Finder の画面共有からは Raspberry Pi に VNC 接続できなくなり、結果として下記のエラーが発生することになります。
リモートコンピュータのソフトウェアが、このバージョンの画面共有と互換性がないようです。
今回は prefer off を選択していますが、prefer on を選択しても Finder の画面共有から Raspberry Pi に VNC 接続することはおそらく可能だと思います。
prefer on はおそらく「暗号化できる場合は積極的に暗号化する」設定になると思いますが、Finder の画面共有と Raspberry Pi のように異なる VNC 同士だと結局暗号化はできないので、いずれにしても暗号化なしでデータの通信が行われることになります。
Mac から SSH を行って設定を行う
次は、Mac からの SSH により設定を行う手順を解説していきます。この手順は Raspberry Pi 用のモニタやマウスが無くても行うことが可能ではありますが、Mac から Raspberry Pi に SSH が実行可能である環境を事前に構築しておく必要があります。
この SSH を行うための手順は下記ページで解説していますので、コチラを参考にしていただければと思います(Raspberry Pi への SSH 接続 の手順まで行なってコチラのページに戻ってきてください)。
SSH できる環境が整ったら、まずは Mac のターミナルアプリを立ち上げ、Raspberry Pi へ SSH 接続を行ってください(この手順についても上記ページで解説しています)。
この SSH を利用することで、Mac から Raspberry Pi のコマンドでの遠隔操作を行うことができるようになります。そして、このコマンドでの遠隔操作を通して、Mac の Finder の画面共有から Raspberry Pi に VNC 接続できるよう VNC 認証オプションの設定変更を行なっていきます。
この VNC 認証オプションの設定変更は、Raspberry Pi の /root/.vnc/config.d/vncserver-x11 というファイルを編集することで行なっていきます。
まずは、このファイルを編集するために、SSH 接続しているターミナルから下記のコマンドを実行します(pi@raspberrypi:~ $ 部分は入力する必要はありません)
pi@raspberrypi:~ $ sudo nano /root/.vnc/config.d/vncserver-x11
上記では nano コマンドを実行しており、これによりテキスト編集画面に遷移するはずです(テキスト編集は vim からも行えるのですが、Raspberry Pi OS に初期インストールされている vim が非常に使いづらいので、nano を使った方が編集は楽かなぁと思います)。
このテキスト編集画面では、基本的にはいつも使っているテキストエディタ同様の方法で編集が行えると思います。ただ、キーボードの押下やペーストを行なった際に文字の挿入が行われるのはカーソルの位置であり、このカーソルはマウスでは移動できないので注意してください(キーボードの矢印キーで移動を行う必要あり)。ペーストも command + v で通常の Mac 通りに行えるはずです。
ただ、編集を終了する場合の手順はちょっと特殊で、control + x を同時押しする必要があります。これにより保存するかどうか尋ねられるので y を入力し、その後 エンターキー を押せば、元のターミナルの画面に戻るはずです(保存したくない場合は y の代わりに n を入力してください)。
さて、このテキスト編集で行うのは Rhaspberry Pi の VNC の認証オプションの変更になります。具体的には、下記の2行を追記します。
Authentication=VncAuth Encryption=PreferOff
もし、Authentication= や Encryption= の行が既に存在する場合は、その行を上記のようになるよう直接編集してください。
テキスト編集が完了すれば、あとは control + x → y → エンターキー でファイルを保存して終了します。
上記手順により認証方法が変わったので、次は VNC 接続時の認証パスワードの設定が必要になります。
これを行うために、まずは SSH 接続した状態のターミナルから下記のコマンドを実行してください。すると、VNC 接続する際に使いたいパスワードが尋ねられますので、好きなパスワードを入力してエンターキーを押してください(再入力を促されますのでその際に同じパスワードを入力してください)。
pi@raspberrypi:~ $ sudo vncpasswd -service
これにより、VNC 接続時のパスワードが設定されたことになります。以降で VNC 接続する際には、ここで設定したパスワードを利用するようにしてください。
あとは、Raspberry Pi の VNC を有効化して VNC サーバーを起動させれば設定完了です(既に起動している場合は再起動)。VNC の有効化については下記ページの VNC 有効化 で解説していますので、もしご存知なければコチラを参考にしていただければと思います。
Finder の画面共有からの VNC 接続の確認
以上の手順により、Mac の Finder の画面共有から Raspberry Pi に VNC 接続する準備が整ったことになります。早速 Raspberry Pi に VNC 接続してみましょう!
まず Mac の Finder を起動し、メニューバーの 移動 から サーバーへ接続... を選択します。すると、下の図のような画面が表示されるはずです。
![]()
上側の入力欄には次のいずれかを入力する必要があります。
vnc://RaspberryPiホスト名.local:5900vnc://RaspberryPiのIPアドレス:5900
RaspberryPiホスト名 のデフォルトは raspberrypi なので、ホスト名を変更していない場合、まずは vnc://raspberrypi.local:5900 を入力し、接続 ボタンを押してください。
おそらく下の図のような画面が表示されてパスワードを尋ねられますので、ここで Raspberry Pi を直接操作して設定を行う や Mac から SSH を行って設定を行う の手順の中で設定した VNC のパスワードを入力します。
![]()
そして、パスワード入力後に 、サインイン ボタンをクリックすれば…、下の図のように Raspberry Pi の画面が表示されるはずです!!
![]()
Raspberry Pi の画面内でマウスを動かしたり、マウスでクリックしたりすると Raspberry Pi の操作が行えることを確認することができるはずです。もちろんキーボード入力も行うことができます。
一度ここまで確認が行えれば、以降は Raspberry Pi を立ち上げた後に Finder から同様の手順で接続を行うだけで VNC 接続して Raspberry Pi を遠隔操作することができるようになります。
もし vnc://raspberrypi.local:5900 で接続してもパスワード入力画面まで遷移しない場合や、ホスト名がわからないような場合は、vnc://RaspberryPiのIPアドレス:5900 の形式で接続先を指定して再度試してください。
例えば Raspberry Pi の IP アドレスが 192.168.2.108 であれば、下の図のように入力を行います。
![]()
Raspberry Pi の IP アドレスが分からない場合は、下記ページで IP アドレスの調べ方を解説していますので、コチラを参考にして IP アドレスを調べてみていただければと思います。
まとめ
このページでは、Mac の Finder の画面共有から Raspberry Pi への VNC 接続時に下記のエラーが出た場合の原因と対処法について解説しました!
リモートコンピュータのソフトウェアが、このバージョンの画面共有と互換性がないようです。
エラーの原因は、Mac の VNC クライアント(Finder の画面共有)の使用する VNC と Raspberry Pi の VNC サーバーの使用する VNC との実装が異なるからです。
手っ取り早い&安全な対処法は、同じ実装の VNC を利用することです。具体的には、Mac で別途 VNC Viewer というアプリをインストールし、それを使用することでエラーを解決することができます。
また、異なる実装の VNC であっても VNC 接続できるよう、Raspberry Pi の VNC 認証オプションを変更することでも対処することが可能です。ただ、この場合は Mac と Raspberry Pi 間で送受信されるデータが暗号化されなくなる点に注意してください。
データの暗号化が行われる方が安全であることは間違いないので、前者の VNC Viewer を利用して対処することをオススメします!

参考になります.
一つ気がついたのですが,VNC Viewer (by RealVNC)のデメリットとして,RealVNCのアカウントを作成することが必要,というのも挙げられるのではないでしょうか.アカウント無しで使用する方法はあるのかもしれませんが,一般ユーザーの私レベルでは分かりません.
いばろうさん
コメントありがとうございます!
あら?サインアップしないとViewer自体が使えないということでしょうか?
私はアカウント作った覚えはないような…。申し訳ございません、記憶が曖昧です…。
アカウント作成せずにサインアップなしでも、直接ラズパイのIPアドレスを指定すれば接続できませんか?