前回記事がこちら。
MacのGemini CLIをiPhoneからリモートアクセスしようとして、EPERMエラーでどん詰まりしている(→解決済) - 生成AIと生きる
みんなスイスイ設定できていそうだったのに、かなり苦労したぞ。ただ、とりあえずスマホからもVibe Codingできるようにはなった。
ただ、sshdというよくわからないものにフルディスクアクセスを与えるという解決策は、セキュリティ的に大丈夫なんだろうか?という疑問が生じた。なので、GeminiにVPNやSSHの仕組みを改めて解説してもらって、対策を講じてもらった。
曰く、
で、
sshdにフルディスクアクセスを許可するという行為は、この「誰」にあたるプロセス(sshd)に、城のすべての財産(全ファイル)にアクセスする権限を与えることを意味します。
Tailscaleの役割: 荒野を通る際に、伝令官(Termius)が盗賊に襲われないように守ります。
SSHの役割: 伝令官が城の中に入った後、金庫(
Documentsフォルダ)を開ける権限を与えるかどうかを決めます。たとえ、Tailscaleという安全な道を通ってきたとしても、もし伝令官が偽物だったり、合言葉が盗まれてしまったりすれば、城の中のすべての財産が危険に晒されてしまいます。これが、
sshdにフルディスクアクセスを許可する際のセキュリティ上の懸念の本質です。だからこそ、パスワード認証を無効化して鍵認証にしたり、TailscaleのACLで接続元を厳密に制限したりといった、「誰」にアクセスを許可するかを厳格に管理することが極めて重要になります。
とのこと。すごくわかりやすい!
ということで、以下の2つを実施しました。
1. Tailscaleのデバイス制限を追加
自分のアカウントでログインしているデバイスのみをVPNアクセス可能にしました。
2. TermiusのSSHの認証を鍵認証に変更
デフォルトだとパスワード認証になっている?っぽかったので、改めて鍵を発行して鍵認証に変更しました。
3.Mac PCのSSHでパスワード認証を無効化
パスワード認証を受け付ける設定をnoにし、鍵認証の場合のみSSHを利用可能にしました。
うまく設定できているのかよくわからんが……。これで少しはセキュアになったかな?