重要:この変更を行う前に SSH の設定を完了してください
この設定により、すべての画面共有接続で SSH の使用が必須になり、同じローカルネットワーク上のデバイスからの接続も含まれます。有効にすると、macOS は Mac 自身(localhost)からの直接の画面共有(VNC)接続のみを受け付けます。そのため、インターネット、VPN、またはローカルネットワークから発信された他のデバイスからの直接 VNC 接続は機能しなくなります。
続行する前に、Mac で Remote Login が有効になっていること、また Screens が以下の説明どおり Enable on Local Connections を含む Secure Connections を使用するように設定されていることを確認してください。そうしないと、Screens は接続できません。
macOS 10.12 Sierra 以降では、macOS を設定して、内蔵の Screen Sharing サービスが Mac 自身(localhost)からの接続のみを受け付けるようにできます。これにより、同じローカルネットワーク上のデバイスを含め、他のデバイスが Screen Sharing(VNC)サービスへ直接接続することを防げます。
Screens は、まず Mac への SSH 接続を確立し、その SSH 経由で Screen Sharing 接続をトンネルすることで、引き続き接続できます。その結果、その Mac へのすべての Screens 接続で SSH が必須となり、ローカル接続も含まれます。
はじめる前に
この変更を行った後は直接の Screen Sharing 接続が受け付けられなくなるため、Mac で Remote Login(SSH)を有効にしておく必要があります。
- システム設定を開きます。
- 一般 > 共有 に移動します。
- Remote Login を有効にします。
- Mac のユーザーアカウントにアクセス権が付与されていることを確認します。
また、下記の説明に従って、インストールされている場合は Screens と Screens Connect も安全な接続を使用するように設定する必要があります。
Screens を設定する
Screen Sharing をローカル接続のみに制限する前に、Screens で保存済みの接続を編集し、Security セクションを開きます。
Secure Connections を有効にし、Enable on Local Connections もオンになっていることを確認します。
これは重要です。Screen Sharing がローカル接続のみに制限されると、デバイスが Mac と同じローカルネットワーク上にある場合でも、Screens は SSH を使用しなければなりません。
Screens Connect を設定する
Screens Connect を使用している場合は、設定を開き、General を選択して、Use Remote Login を有効にします。
これにより、Screens Connect は Screen Sharing サービスへ直接接続する代わりに、SSH を使用するようリモート接続を構成します。
Screen Sharing をローカル接続のみに制限する
Remote Login と上記の SSH オプションを設定したら、Mac で Terminal を開き、次を入力します。
sudo defaults write /Library/Preferences/com.apple.RemoteManagement.plist VNCOnlyLocalConnections -bool yes
プロンプトが表示されたら、Mac のユーザーアカウントのパスワードを入力します。
VNCOnlyLocalConnections 設定により、macOS Screen Sharing は localhost からの直接 VNC 接続のみを受け付けるようになります。
つまり、以下のとおりです。
- インターネットからの直接 VNC 接続は機能しなくなります。
- Tailscale や ZeroTier などの VPN を経由した直接 VNC 接続は機能しなくなります。
- ローカルネットワーク上の他のデバイスからの直接 VNC 接続は機能しなくなります。
- Screens は、接続がリモートかローカルかに関係なく、まず SSH 経由で接続し、その上で VNC 接続をトンネルする必要があります。
変更を元に戻す
macOS Screen Sharing が再びネットワーク接続を直接受け付けるようにしたい場合は、Terminal を開いて次を入力します。
sudo defaults write /Library/Preferences/com.apple.RemoteManagement.plist VNCOnlyLocalConnections -bool no
再度接続を試みる前に、macOS が変更を適用するまで数秒待ってください。
変更が有効になると、Screens は再びローカルネットワークや VPN 経由を含め、SSH トンネルを必要とせずに Screen Sharing(VNC)サービスへ直接接続できるようになります。
その後、安全な接続を使用し続けたくない場合は、Screens と Screens Connect の SSH 固有の設定を無効にできます。
重要: Screen Sharing が localhost のみに制限されると、デバイスが同じローカルネットワーク上にある場合や Mac が Nearby に表示される場合でも、Screens はこの Mac へのすべての接続で SSH を使用しなければなりません。
Enable on Local Connections がない場合、ローカル接続は VNC サービスへ直接接続しようとして失敗します。