SECURITY CHECK

Tailscaleのセキュリティ確認方法|初心者が設定を変えずに調べる5項目

2026.10.30

家事と子育てのスキマで経営する3方よしAI共創コンサルタントの田中啓之、ひろくんです。

最新AI情報満載!毎日無料朝LIVE実施中!GPTs研究会では、AIツールの最新活用法を毎朝シェアしています。AI初心者の方も、ぜひAI氣道.jp無料メルマガで朝LIVEブログを毎日チェックしてくださいね。

2026年10月28日、Tailscaleの公式ブログに、SSHとServeの不具合を直した1.104.4の発表が載りました。その日のうちに、AIに頼んで、自分のMacに入っているTailscaleを確かめました。設定は一つも変えていません。読むだけです。

確かめられたのは、Mac 1台だけでした。ほかの9台は、手を付けずに「未確認」と書いて残しています。

1台で止めたのには理由があります。私は仕事の軸として、事実と推測と、まだ取れていない物を混ぜないようにしているんですよね。9台ぶんを「たぶん同じだろう」で埋めてしまうと、どこまで見たのかが自分でも分からなくなります。「1台は見た。9台はまだ」と書いておけば、次に手を付ける所がそのまま一覧になります。

この記事は、Tailscaleを入れてみたものの、ネットワークの設定画面を開くと手が止まる、という人に向けて書きました。開く画面、打つ文字、返ってくる表示、そして人が自分で決める所。この順番で並べます。

途中で設定を変える手順は出てきません。確かめることと、変えることは、別の承認として分けておきます。確認が終わってから、誰が、どの端末で、何を変えるかを決めて、変えることについて別に承認を取る。承認が取れれば、同じ日に変えてかまいません。なぜ分けるのかも、あとの章で書きますね。

記事全体図:つながる・許可する・公開するの3つのスイッチ→1.104.4と1.104.2の違い→5項目→5つのコマンド→オン・オフ・未確認→確認と変更は別の承認
この記事の流れ

3行でわかるポイント

  1. Tailscaleのセキュリティ確認は、設定を変えずにできます。見るのは、SSH、App Connector、ServeとFunnel、出口ノードとサブネットルーター、バージョンの5項目です。
  2. SSHとServeの不具合を直したのは、2026年10月28日公開の1.104.4です。10月21日の1.104.2は別の目的の更新なので、1.104.2にしてあっても、今回の修正は入っていません。
  3. 結果は「オン」「オフ」「未確認」のどれかで書きます。見ていない物を「オフ」に数えない。ここがこの点検でいちばん崩れやすい所です。

AIエージェントに渡す点検プロンプト

この下の枠の文を丸ごとコピーして、Claude Code や Codex のような、手元の端末でコマンドを打てるAIエージェントに貼ってみてください。この記事の点検を、設定に触れずに読み取りだけで代わりにやってもらえます。私も10月28日は、AIに頼んで自分のMacを確かめました。

中身は、この記事に出てくる5つのコマンドと、8章に書いた4行の約束を、そのまま頼む文にしたものです。なぜその4行を入れるのかは、あとの章で書きますね。ターミナルで打つ文字を覚えていなくても、頼む文の中に打ってよいコマンドと読み方が全部入っている形になっています。

ただ、返ってきた結果は、そのまま信じずに自分の目で読み直してください。AIの「確認しました」は、その一言で受け取らず、根拠にした行の値まで見るんですよね。管理画面の Access controls、つまりSSHの規則は、人が自分で見ます。結果を見て何かを変えたくなっても、変えるかどうかは確認が終わってから別に決めます。枠の中にはこの記事のURLが入っていて、記事を読んだAIから短い質問が届きます。答えると、自分の環境に合わせた追加のプロンプトまで返ってきます。

▶ タップして依頼文を開く
次の依頼を、この端末で読み取りだけで行ってください。

【記事のURL】
Tailscaleのセキュリティ確認方法|初心者が設定を変えずに調べる5項目
最初に、このURLの記事を読んでください。読めない時は、読めなかったと伝えて、この依頼文に書いた内容だけを材料にしてください。 【目的】 この端末のTailscaleを、設定を変えずに読み取りだけで点検し、決まった形で結果を返す。 【打ってよいコマンド(この5つだけ)】 tailscale version tailscale status tailscale serve status tailscale funnel status tailscale debug prefs Mac の App Store 版で tailscale が見つからない時は、/Applications/Tailscale.app/Contents/MacOS/Tailscale を先頭に置いて、同じ5つを打つ。 【守ること】 1. 確認だけを行う。設定を変えたり、更新や再起動をしたりはしない。 2. 管理者権限(sudo など)を使わない。権限が無くて読めない所は「未確認」として、理由を添えて返す。 3. 表示の全文ではなく、版、RunSSH、AppConnector の Advertise、AdvertiseRoutes(と ExitNodeID)、ServeとFunnelの項目ごとに「Funnel on」か「tailnet only」か、の5点だけを返す。管理画面のSSHの規則は人が見る。 4. 応答しなかった端末は「応答なし」と返し、「オフ」と書かない。 5. 追加のプロンプトに足してよいのは、私の環境に合わせた言い方と手順だけです。この依頼で禁じたことは、追加のプロンプトの中にも同じように書いてください。 【打たないコマンドの例】 tailscale set、tailscale up、tailscale update、tailscale serve reset、status を付けない tailscale serve と tailscale funnel。jq のようなツールも入れない。 【読み方】 - 版: 1.104.4 と並べ、それより古いかどうかを書く。 - RunSSH: true か false か。 - AppConnector の Advertise: true かどうか。 - AdvertiseRoutes: 空か null なら何も用意していない。0.0.0.0/0 と ::/0 があれば、出口ノードを提供する側。 - ExitNodeID か ExitNodeIP に値があれば、出口ノードを使う側。 - Serve と Funnel: https://・http://・tcp:// で始まる項目の行の括弧の中に「Funnel on」とあるか「tailnet only」とあるかで見る。 - 探しても行が見つからない項目は「未確認」。 【追加のプロンプト】 上の作業が終わったら、次の4つを1つずつ質問してください。答えが返ってから次の質問へ進んでください。 ・この記事の話を、自分のどの仕事や場面に当てはめたいか ・その場面で、AIに渡せる物は何か(資料、記録、メモなど) ・最後に自分の目で確かめたい所はどこか ・私が使っているAIエージェントや道具は何か(名前、使えるファイルや記録の範囲など) 答えをもとに、私の環境でそのまま貼って使える追加のプロンプトを、1〜3本つくってください。記事のURLを、各プロンプトの中に入れてください。 【返す形】 - 版: 「1.104.4以上/1.104.4より古い/未確認/応答なし」のどれかと、版の番号を書く。 - RunSSH と AppConnector の Advertise: それぞれ「オン/オフ/未確認/応答なし」のどれかと、根拠にした行の値(true か false)を書く。 - AdvertiseRoutes: 実際の値は書かず、「空/出口用の経路(0.0.0.0/0 と ::/0)あり/それ以外の経路あり/未確認/応答なし」のどれかで返す。 - ExitNodeID・ExitNodeIP: 値そのものは書かず、それぞれ「値あり/空/未確認/応答なし」のどれかで返す。 - Serve と Funnel: 項目ごとに「Funnel on/tailnet only/未確認/応答なし」のどれかを書く。 - IPアドレス、経路の範囲、端末の名前やID、tailnet名、サービスの名前やURL、公開しているパスは、根拠の値にも書かずに伏せる(例:「端末A」「項目1」)。 - 表示の全文は貼らない。 - 私の環境で使える追加のプロンプト(1〜3本。記事のURL入り) 【最後に】 設定を変える提案があっても実行しない。提案として書くだけにする。
01

Tailscaleとは何か。接続と許可と公開は別々の話です

家の断面図。家に住むのがつながる、入れる部屋を決めるのが許可する、外に看板を出すのが公開する
つながる・許可する・公開するは、別の話

Tailscaleは、離れた場所にある自分の端末どうしを、インターネット越しに同じ部屋にいるかのようにつなぐサービスです。自宅のMacや外出先のノートPCのような端末を、自分専用のネットワークに入れて使います。クラウドのサーバーも同じように入れられます。このネットワークを tailnet と呼びます。

最初にここだけ押さえておいてください。「つながる」「許可する」「公開する」は、それぞれ別の設定です。

  • つながる: 端末をtailnetに入れること。入れただけで、知らない人が入ってこられるわけではありません。
  • 許可する: tailnetの中で、どの端末からどの端末へ、どんな操作をしてよいかを決める規則です。Tailscale SSHを使ってよいかどうかも、ここで決まります。
  • 公開する: tailnetの外、つまりインターネットに向けて何かを見せる設定です。Funnelがこれに当たります。

つまずきやすいのは、これを全部まとめて一つのスイッチだと思ってしまう所です。家にたとえると、「家族として家に住む」「どの部屋に入っていいか決める」「玄関の外に看板を出す」くらい違う話なんですよね。

アプリが起動しているから外に公開されている、という関係ではありません。逆も同じで、アプリを閉じたからといって、公開の設定が消えるわけでもありません。設定は設定として、端末の中に残り続けます。

だからこの記事では、「今アプリが動いているか」ではなく、「どんな設定が入っているか」を一つずつ読んでいきます。

02

2026年10月28日の公式発表で分かっていること

公式発表を読むひろくんと、1.104.4(SSHとServeの修正)と1.104.2(別の目的の更新)の2枚の札
1.104.4 と 1.104.2 は、目的の違う更新

セキュリティの話を聞くと、まず不安が先に立ちますよね。私は、そこで先に動かないようにしています。

私のリスクの取り方は、「最悪こうなる、でもそれでも大丈夫」を確かめてから踏み出す、です。脆弱性の発表でも同じで、最初に読むのは「どんな条件がそろうと起きるのか」です。条件が分かれば、自分の端末がその条件に当てはまるかを見に行けます。不安を、見に行く場所に変えられるんです。

読んだのは、Tailscaleの公式ブログ(2026年10月28日)と変更履歴、それからセキュリティ情報の一覧です。要点は4つありました。

  1. 1.104.4(2026年10月28日公開)が、Tailscale SSHとServeの不具合を直した版です。SSHでは、管理者権限で通信の中継ができてしまう問題と、メモリを使い切らせる問題の2件。Serveでは、特定の設定を経由して端末の操作権限を取られる問題と、通信の権限情報が漏れる問題の2件です。
  2. 1.104.2(2026年10月21日公開)は、目的が違う更新です。ある認証局の中間証明書の秘密鍵が漏えいしたため、その中間証明書を信用しないようにする変更が中心で、今回のSSHの修正は入っていません。番号が近いので混ざりやすいんですが、「1.104.2にしたから今回の件も済んだ」とは言えません。
  3. SSHの問題が悪用されるには、条件があります。公式の説明では、すでにtailnetに入っている許可済みの端末に足掛かりがあり、なおかつアクセス規則でTailscale SSHが許されている場合です。インターネット上の誰でも入ってこられる、という話ではありません。
  4. App Connectorについて、公式は「Conn25」という開発中の新しい仕組みで見つかった問題だと説明しています。Conn25はまだ公開されていません。いま使われている安定版のApp Connectorは、同じ指摘の対象ではない、というのが公式の説明です。App Connectorそのものを危ないとひとまとめにするのは、公式の説明と食い違います。

Serveについては、外部の研究者から5件の指摘があったそうです。そのうち3件は不具合として修正、残り2件は意図した動作だ、と公式は説明しています。意図した動作とされた2件は、どちらも端末の管理者権限か、明示的にオンにする設定が前提になっています。

ここで一つ、はっきりさせておきます。ここまでの4点は、すべてTailscale公式の説明です。公式ブログも変更履歴も同じ会社が出している物なので、独立した第三者が確かめた、とは書きません。私自身も、攻撃を再現して試したわけではありません。

公式が何と言っているか。それを読んだうえで、自分の端末はどうなっているか。この記事で扱うのは、後半の「自分の端末」の方です。

03

準備。使う画面は2つ、使わない物は3つ

使うのは管理画面とターミナルの2つ。使わないのは管理者権限・設定を変えるコマンド・ツールの追加の3つ
使う画面は2つ、使わない物は3つ

使う物は2つです。ブラウザで開くTailscaleの管理画面と、手元の端末のターミナルです。

  • 管理画面: ブラウザで login.tailscale.com を開き、Machines の一覧を見ます。端末ごとのバージョン、出口ノードやサブネットの印、最後に接続した日時が並んでいます。
  • ターミナル: Macなら「ターミナル」アプリ、Windowsなら PowerShell です。打つのは、このあと出てくる読み取り専用のコマンドだけです。

使わない物も、始める前に決めておきます。ここを決めずに始めると、確かめているつもりで設定を触ってしまうことがあるんですよね。

  • 管理者権限(sudo や「管理者として実行」)。読むだけなら管理者権限は要りません。Permission denied と出たら、そこは無理に開けず「未確認」と書いて止めます。
  • 設定を変えるコマンド。tailscale set、tailscale up、tailscale update、tailscale serve reset などは、この点検では打ちません。
  • 入っていないツールの追加。jq のような表示を整えるツールも、点検のためにわざわざ入れません。

スマホやタブレットにはターミナルがありません。その場合は、Tailscaleアプリの画面と管理画面でバージョンを見ます。アプリの設定か「About」にバージョンが出ていて、管理画面の Machines にも同じ端末の番号が並びます。

あ、Macで一つ引っかかりやすい所があります。ターミナルで tailscale と打つと「見つかりません」と返ってくることがあるんです。App Store版のTailscaleは、コマンドが自動では使える状態にならないためです。その時は、アプリの中にあるコマンドを、場所ごと書いて呼びます。

/Applications/Tailscale.app/Contents/MacOS/Tailscale version

この書き方なら、設定を変えずにコマンドだけ使えます。以降の章のコマンドも、先頭の tailscale をこの長い書き方に置き換えれば同じように動きます。

04

Tailscaleのセキュリティ確認の5項目。画面、入力、出力、人が確認すること

SSH・App Connector・Serve・Funnel・出口とサブネット・版の5行の確認表と、人が書き込む鉛筆
5項目は、人が見て書き込む

ここが記事の真ん中です。5項目を1枚の表にしました。印刷して、右端の欄を自分の字で埋めていくと進めやすいですよ。

項目この機能の役割見る画面・入力出力で見る場所人が確認すること
1. Tailscale SSHtailnetの中の端末に、Tailscaleの利用者情報とアクセス規則で認証・許可してつなぐSSH接続。鍵やパスワードを自分で管理する通常のSSH(OpenSSH)とは別の仕組み管理画面の Access controls(規則)と、ターミナルの tailscale debug prefs規則に ssh の項目があるか。prefs の RunSSH が true か false かこの端末がSSHを受け付ける設定か。規則で誰に許しているか。見ていなければ未確認と書く
2. App Connector特定のサービスへの通信を、この端末を通してまとめる機能tailscale debug prefsAppConnector の Advertise が true か false かこの端末がApp Connectorとして名乗り出ているか。使っているのは安定版か(Conn25は未公開)
3. ServeとFunnelServeはtailnetの中だけに、Funnelはインターネットにも、手元のサービスを見せる機能tailscale serve status と tailscale funnel status公開しているパスと転送先。項目ごとの先頭の行の括弧の中に「Funnel on」とあるか「tailnet only」とあるか「Funnel on」と付いた項目は、インターネットへの公開設定。「tailnet only」の項目はtailnetの中だけ。今も要るかは人が決める
4. 出口ノードとサブネットルーター出口ノードは、自分のインターネット通信を別の端末経由にする機能。サブネットルーターは、別のネットワークへの道を用意する機能管理画面の Machines と、tailscale debug prefs の ExitNodeID・ExitNodeIP・AdvertiseRoutes使う側: ExitNodeID か ExitNodeIP に値がある。提供する側: AdvertiseRoutes に 0.0.0.0/0 と ::/0(出口ノード)や、それ以外の経路(サブネット)がある。管理画面では Machines に Exit Node・Subnets の印提供する側になっていないか。なっているなら、誰のために、いつからかを確かめる
5. バージョン修正が入った版かどうかtailscale version と管理画面の Machines番号。1.104.4 以上か全端末の番号を書き出す。見ていない端末は未確認

1行目のTailscale SSHについて、一つ補足させてください。RunSSH が false なら、その端末はTailscale SSHを受け付けていない、という意味です。ただ、端末にもともと入っている通常のSSH(OpenSSHのサーバー)が動いているかどうかは、この値からは分かりません。

名前が似ているので混ざりやすいんですが、Tailscale SSHと通常のSSHは別の仕組みです。通常のSSHは、OSの設定で別に確かめます。Macなら「リモートログイン」の項目です。表の1行目だけで「SSHは全部オフ」と書かないようにしてください。

それから、表の右端「人が確認すること」の欄。ここは、コマンドの表示をそのまま書き写す欄ではありません。表示を読んだうえで、「今の自分にこれは要るか」「誰に許しているか」を自分で決めて書く欄です。

ここだけは、AIに任せても代わってもらえないんですよね。要るかどうかは、使っている本人にしか分からないからです。

05

初心者向けの確認方法。5つのコマンドを順に打つ

版・端末の一覧・Serve・Funnel・設定の一覧の5段の階段。どの段も表示するだけ
5つのコマンドは、どれも表示するだけ

ターミナルを開いて、次の5つを上から順に打ちます。どれも、表示するだけで何も変えないコマンドです。

tailscale version
tailscale status
tailscale serve status
tailscale funnel status
tailscale debug prefs

1つ目は、版の番号が出ます。メモに書き写して、1.104.4と並べてください。

2つ目は、tailnetに入っている端末の一覧と、自分の端末の状態です。

3つ目と4つ目は、ServeとFunnelの設定です。実は、どちらのコマンドも同じ一覧を表示します。ServeとFunnelの項目が、同じ形で並ぶんですよね。見分ける所は、項目ごとの先頭の行です。この行は https:// のほかに、http:// や tcp:// で始まることもあります。その行の括弧の中に「Funnel on」とあればインターネットに向けて公開する設定、「tailnet only」ならtailnetの中だけの設定です。tcp:// の行では「(TLS-terminated TCP, Funnel on)」のように、「Funnel on」の前に別の説明が付くこともあります。括弧がもう1つ続く行もあるので、括弧の形ではなく、括弧の中の言葉で見てください。一覧のいちばん上に「# Funnel on:」という見出しで、公開している項目が並ぶこともあります。何も設定していなければ、「何も設定されていない」という意味の短い表示で終わります。

5つ目は、この端末の設定の一覧です。SSH、App Connector、出口ノードとサブネットの値は、ここにまとめて出てきます。長いので、読み方は次の章で絞ります。

SSHの規則、つまり「誰にTailscale SSHを許しているか」は、コマンドでは見ません。管理画面の Access controls で読みます。5項目を全部見るには、この5つのコマンドと、管理画面の Machines・Access controls をそろえて一式です。

打つ時に気を付けてほしいことが2つあります。

  • tailscale serve や tailscale funnel を、後ろの status を付けずに打たないでください。続けて書く文字によっては、設定を変える操作に入ってしまいます。この点検では、必ず status まで打ちます。
  • 表示された内容を、まるごとSNSやAIのチャットに貼らないでください。tailscale status には、端末の名前やtailnetの中のアドレスが出ます。人やAIに見せる時は、必要な行だけを抜き出します。

App Store版のMacで tailscale が見つからないと言われたら、前の章で書いた長い書き方で、同じ5つを打てば大丈夫です。

06

debug prefs の読み方。RunSSH・AppConnector・AdvertiseRoutes を抜き出す

長い巻物の一覧から、RunSSH・AppConnector・AdvertiseRoutes・ExitNodeの4か所だけを虫眼鏡で探す図
長い一覧から、4つだけ探す

tailscale debug prefs は、この端末の設定を一覧で表示するコマンドです。表示するだけで、何も変えません。

ただ、出てくる文字がかなり多いんですよね。初めて見ると、どこを読めばいいのか分からなくなります。なので、見る行を先に決めておきます。

  • RunSSH: この端末がTailscale SSHを受け付ける設定なら true、受け付けないなら false
  • AppConnector の Advertise: App Connectorとして名乗り出ていれば true
  • AdvertiseRoutes: この端末が用意している経路。空か null なら、何も用意していない。0.0.0.0/0 と ::/0 があれば、出口ノードを提供する側
  • ExitNodeID・ExitNodeIP: 値が入っていれば、この端末は出口ノードを「使う」側

この4つの名前を、表示の中から目で探すだけで足ります。jq のような整形ツールは、入っていなければ入れません。

一つ注意があります。Tailscaleの版やOSによって、項目の名前や並び方が違うことがあります。探しても該当の行が見つからなかったら、その項目は「未確認」と書いてください。

見つからない、は「オフ」ではありません。「見つけられなかった」という事実です。ここを「無いからオフ」に読み替えてしまうと、次の章で書く大事な線が崩れます。

07

結果の読み方。false と空欄と未確認は違います

見てオフだった、見て設定が無かった(空欄)、まだ見ていない(未確認)の3枚のカード
オフと空欄と未確認は、別の結果

私がAIに仕事を任せる時の最低条件は、「わからないことは憶測しないで聞く。わかることは2度聞かない」です。点検の結果を読む時も、この線をそのまま使います。見ていない物を、推測で「オフ」に数えない。一度見て分かった物は、何度も聞き直さない。AIに対しても、自分に対しても同じ線です。

この線を、違いごとに分けて書きます。

1つ目は、false と空欄と未確認の違いです。false は「見て、オフだった」。空欄や null は「見て、設定が入っていなかった」。未確認は「まだ見ていない」。紙に書く時は、それぞれを別々の言葉で書いてください。全部まとめて「問題なし」にしてしまうと、見ていない所が見えなくなります。

2つ目は、「名乗り出ている」「管理者が承認した」「実際に届く」の違いです。たとえばサブネットルーターは、端末が経路を名乗り出ても、管理画面で承認されなければ通りません。承認されていても、相手側の設定で届かないこともあります。prefs の AdvertiseRoutes だけでは、「届くか」までは分からないんです。

3つ目は、出口ノードを「使う」ことと「提供する」ことの違いです。自分の通信を別の端末に通してもらっているのが「使う」側。ほかの端末の通信を、自分の端末が引き受けているのが「提供する」側です。

見分け方は prefs の値です。ExitNodeID か ExitNodeIP に値があれば使う側。AdvertiseRoutes に 0.0.0.0/0 と ::/0 があれば、出口ノードを提供する側。それ以外の経路、たとえば 192.168.1.0/24 のような形があれば、サブネットルーターを提供する側です。管理画面の Machines では、提供している端末に Exit Node や Subnets の印が付きます。

点検で気にするのは、自分の端末が知らないうちに提供する側になっていないかどうかです。もしなっていたら、それが誰のための設定なのかを確かめます。

Funnelにも、同じ線があります。tailscale funnel status の一覧で、項目の行の括弧の中に「Funnel on」とあったら、それは「インターネットへ公開する設定が入っている」という意味です。「tailnet only」とある項目は、tailnetの中だけの設定です。一覧に項目があるかどうかではなく、この括弧の中の言葉で見分けてください。外から実際に通信が届くのか、認証がかかっているのかは、また別に確かめる話になります。設定が入っていることと、通信が成り立つことを混ぜないでください。

この話、以前に別の記事で書いたAIの作業範囲を囲う話と、構造が同じなんですよね。

私の記事より(ダウンロードフォルダでAIエージェントを起動しない理由と対策2つ)書き込みは止まり、読み取りは止まらなかった。囲いを付けただけでは、何が止まるかまでは分かりません。

囲いを付けた、というのは設定の事実です。何が止まったか、というのは結果の事実です。あの時、この2つは一致していませんでした。

Tailscaleでも同じことが言えます。「Funnel on」と付いた項目がある、という設定の事実。外から誰かが実際に届いた、という結果の事実。この2つは、別々に確かめないと分かりません。設定を見ただけで「侵入された」と書くのも、「だから大丈夫」と書くのも、どちらも一歩飛ばしているんです。

私の10月28日の点検では、確かめたMacの一覧に、「Funnel on」と付いた項目が残っていました。ここで書けるのは、「10月28日の時点で、そういう設定が入っていた」という記録までです。今日も安全だという判定ではありませんし、何かが起きた証拠でもありません。残っていた設定を今も使うかどうかは、点検が終わってから、変えることについて別に承認を取って決めます。承認が取れれば、その日のうちに変えてかまいません。

08

AIに点検を任せる時の約束

4行の約束をAIロボットに渡すひろくん。応答なしの端末はオフと書かない
AIに渡す4行の約束

私は、複数の端末でAIを同時に動かす仕組み(AGI Cockpit)を使っています。この点検もAIに頼めば、端末ごとに同じ5つのコマンドを打って、結果を集めてくれます。

便利なんですが、頼み方を間違えると、確かめてもらうつもりが設定の変更になってしまいます。AIは「よかれと思って」次の手まで進めることがあるからです。

任せた先が、嘘をつく、逃げる、やらない。このどれかが起きるなら、任せられません。だから私は、任せる前に信頼できる仕組みを先に置きます。AIに点検を頼む時の仕組みは、頼む文の中に次の4行を入れることです。

  1. 確認だけを行う。設定を変えたり、更新や再起動をしたりはしない。
  2. 管理者権限(sudo など)を使わない。権限が無くて読めない所は「未確認」として、理由を添えて返す。
  3. 表示の全文ではなく、版、RunSSH、AppConnector の Advertise、AdvertiseRoutes(と ExitNodeID)、ServeとFunnelの項目ごとに「Funnel on」か「tailnet only」か、の5点だけを返す。管理画面のSSHの規則は人が見る。
  4. 応答しなかった端末は「応答なし」と返し、「オフ」と書かない。

いちばん大事なのは4つ目です。AIを動かす仕組みがその端末に届かなかったことと、その端末のTailscaleが止まっていることは、まったく別の話なんですよね。

仕組みの都合で返事が来なかっただけで、端末のTailscaleは普通に動いていて、Funnelの設定も生きている。こういうことは十分に起こり得ます。返事が無い端末を「オフ」にしてしまうと、いちばん見落としたくない所を、自分で隠すことになります。

3つ目で5点に絞っているのにも、理由があります。全文を返されると、人が読み直せる量を超えてしまうからです。5点なら、AIが「確認しました」と返してきた中身を、人が自分の目でもう一度読めます。AIの「確認しました」は、その一言で受け取らず、返ってきた5点を読んで受け取る。そのための絞り込みです。

止める所をどこに置くかは、別の記事でも書きました。

私の記事より(AIエージェントを同僚として迎える。判断と確認の置き方を野嶋さんと諏訪さんが話す)私なら、判断をAIに渡す前に、止まって見せてもらう所を先に決めて、最後の席は人が持ちます。

点検に当てはめると、止まって見せてもらう所は「設定を変える一歩手前」です。AIが「このFunnelは止めた方がよさそうです」と言ってきても、止めるかどうかは人が決めて、人が実行します。

10月28日の私の点検も、AIには確かめるところまでをやってもらい、設定は何も変えていません。最後の席は、こちらで持ったままです。

09

対応の順番。確認と変更を分けます

何回でも読むだけの確認の道と、別の承認を取ってから進む変更の道
確認と変更は、別の承認

ここまで来ると、紙には5項目の結果が「オン」「オフ」「未確認」のどれかで並んでいるはずです。ここから先の順番は、こうです。

  1. 版を見る。1.104.4 より古い端末があれば、その端末には今回のSSHとServeの修正が入っていません。SSHやServeを使っていない端末なら影響の出方は変わりますが、版が古いという事実はそのまま残ります。
  2. 対象の機能を見る。SSHがオン、「Funnel on」と付いた項目がある、App Connectorやサブネットを提供している。このどれかに当てはまる端末に印を付けます。
  3. 要らない公開を見直す。「Funnel on」と付いた項目のうち、今は使っていない物があれば、止める候補にします。ここではまだ候補にするだけで、変えません。
  4. 更新と停止は、別の承認にする。版を上げる、Funnelを止める、SSHの規則を変える。どれも設定の変更なので、確認が終わってから、誰が、どの端末で、何を変えるかを決めて、別に承認を取ってから実行します。承認が取れれば、確かめた日と同じ日に変えてかまいません。版が古い端末の更新は、日を待って遅らせないでください。
  5. 変えたら、もう一度同じ5つのコマンドと管理画面で確かめる。SSHの規則を変えたなら Access controls も読み直します。変えた後の確認を省くと、「変えたつもり」だけが残ります。

確かめることと変えることを分けるのは、手間を増やしたいからではありません。

確かめるのは読むだけなので、何回やっても端末の状態は変わりません。変えるのは、一回で状態が変わります。順番を分けておけば、確かめた結果を詳しい人に見せて相談する時間が取れます。急いで両方を一度にやって、後から「何をどう変えたっけ」となるのを防げるんです。

10

最後の一歩は「自分の端末の版を1台だけ確認する」

未確認の付箋が並ぶ端末のボードの前で、1台のノートパソコンの版を書き留めるひろくん
まずは1台だけ

5項目を全部の端末で一気にやろうとすると、たぶん途中で手が止まります。最初の一歩は、もっと小さくて大丈夫です。

いま目の前にある端末1台で、tailscale version を打つ。番号が出たら、それをメモに書いて、1.104.4と並べる。ここまでです。

それだけで、この記事の「確かめる」の入口は通っています。残りの端末は、「未確認」と書いて一覧に並べておけば、次に手が空いた時にそこから続けられます。

私も10月28日は、Mac 1台で止めました。残した9台は、そのまま次にやる端末の一覧になりました。全部終わらせることより、どこまで見たかが分かる形で止めること。初心者のうちは、そのくらいの進め方でいいと思っています。

FAQ

よくある質問(FAQ)

Q1. SSHがオフなら、今回の件は全部安全ですか?

SSHがオフなら、SSHに関する2件の修正の対象からは外れます。ただ、1.104.4にはServeの修正も入っています。Serveを使っていなければ影響は小さくなりますが、「全部安全」と言うには、ServeとFunnelの状態と、版の番号も見る必要があります。1項目のオフを、5項目すべての合格に広げないようにしてください。

Q2. Funnelを止めれば十分ですか?

Funnelはインターネットへの公開なので、使っていない項目を止めるのは筋の通った判断です。ただ、Funnelを止めても、Serveの設定はtailnetの中に残りますし、版が古ければ修正は入っていません。まず今の状態を5項目で書き出し、確認が終わってから、止めるかどうかを別に承認を取って決める。承認が取れれば、同じ日に止めてかまいません。この順番をおすすめします。

Q3. スマホやタブレットで、ターミナルが無い時はどうしますか?

Tailscaleアプリの設定画面か About に、バージョンが出ています。あわせて、ブラウザで管理画面の Machines を開くと、同じ端末のバージョンと、出口ノードやサブネットの印が見られます。スマホでSSHやFunnelを提供している例は少ないので、まずは版を確かめるだけで足りることが多いです。

Q4. 1.104.2 にしてあります。これで足りますか?

1.104.2 は、秘密鍵が漏えいした中間証明書を信用しないようにする更新が中心です。10月28日に公開されたSSHとServeの修正は、1.104.4 に入っています。番号が 1.104.2 なら、今回の修正はまだ入っていない、と読んでください。

Q5. App Connector を使っています。危ないですか?

公式の説明では、今回の指摘は「Conn25」という未公開の新しい仕組みで見つかった物で、いま使われている安定版のApp Connectorは対象ではない、とされています。使っていることと、危ないことは別の話です。版を確かめて、どの端末が提供しているかを書き出す。この記事で扱うのは、そこまでです。

Q6. 点検の結果はどこに残せばよいですか?

日付、端末名、5項目の結果、確かめた方法(見た画面か、打ったコマンドか)を1行ずつ書いたメモで足ります。紙でもテキストファイルでもかまいません。あとで「あの時どうだった?」と聞かれた時に、記憶ではなく記録で答えられること。それが残す目的です。

COLUMN

確認の結果は、その場の安心で終わらせない

日付・端末・5項目の結果を書いたノートを、次に見る人とAIロボットが読む図
確認の結果を、記録に残す

点検は、終わった瞬間に「見た。大丈夫そう」で閉じたくなる作業です。でも、その一言は、次に見る人の手元には残りません。私が気にしているのは、そこなんです。

AIへの訂正について、魂磨きの回でこう書きました。

私の記事より(AIへの訂正は、その場の一言で終わらせない)読者が自分の言葉をAIに預けるなら、「訂正を言ったか」に加え、「あとで参照する場所にも残っているか」を確かめる。

元記事はこちらです。AIへの訂正は、その場の一言で終わらせない

訂正を口にしたことと、あとで見返せる場所に残っていることは、別の確認でした。言っただけでは、次の会話のAIには届かないんですよね。

点検も、まったく同じ形をしています。「確かめたか」と、「確かめた結果が、次に見る人の手に届く場所にあるか」は別です。次に見る人は、未来の自分かもしれないし、AIかもしれません。

10月28日の点検では、日付と端末と5項目の結果を、1つのファイルにまとめて残しました。今日の安全を保証する記録ではありません。それでも、次に確かめる時に「前回はここまで見た」という出発点になります。その場の安心より、次の人が迷わない記録の方を、私は残しておきたいんです。

MATOME

まとめ: 設定を変えずに5項目を読み、未確認は未確認と書く

  • 2026年10月28日公開の 1.104.4 が、Tailscale SSHとServeの修正版です。10月21日の 1.104.2 は、別の目的の更新です。
  • SSHの問題が悪用されるには、許可済みの端末への足掛かりと、SSHを許す規則の両方が要る、というのが公式の説明です。App Connectorの指摘は未公開の Conn25 の話で、安定版は対象外とされています。
  • 見るのは5項目。Tailscale SSH、App Connector、ServeとFunnel、出口ノードとサブネットルーター、バージョンです。
  • 使うのは管理画面(Machines と Access controls)と、tailscale version、tailscale status、tailscale serve status、tailscale funnel status、tailscale debug prefs の5つのコマンド。管理者権限と、設定を変えるコマンドは使いません。
  • 結果は「オン」「オフ」「未確認」に分けて書きます。見ていない物を「オフ」にしない。返事が無かった端末も「オフ」にしない。
  • 確かめることと変えることは、別の判断です。変えると決めたら、誰が、いつ、どの端末でを決めてから実行し、終わったら同じ5つのコマンドと管理画面でもう一度確かめます。

この記事の手順は、読むだけで終わります。最初の一歩は、目の前の1台で tailscale version を打って、出てきた番号を1.104.4と並べること。そこから始めてみてくださいね。

LINK

🤖 AI生成コンテンツについて

この記事はAIツール(Claude Code)を活用して制作しています。構成・文章生成・画像制作にAIを使用し、最終的な内容の確認・編集・公開判断はひろくん(田中啓之)本人が行っています。「分身AIひろくん」(bunshin-ai.com)とは別のコンテンツです。

この記事が気に入ったら、シェアをお願いします

この記事で学んだことを誰かに教えて恩送りして学びを深めよう!

XLINEはてブ

関連記事