← 対処の手順の一覧

Windows で SSH の接続元を家のネットワークに絞る

この手順で使う値

  • OS:Windows
  • ポート:22

Pengolin のアプリでは、お使いのPCで見つかったポートとネットワークの範囲を入れた手順を表示します。

これは何か

SSH は、別の機器からこのPCに入って操作するための仕組みです。今は、どこからでも接続を受ける設定になっています。ここでは、ファイアウォールの設定を変えて、このPCと同じ家のネットワークの機器からだけ受けるようにします。SSH を使っていないなら、止めるほうが安全です。

使っているかの確かめ方

PowerShell で次を実行します。結果に Listen と出れば、22番で接続を待っています。何も出なければ、今は使われていません。

Get-NetTCPConnection -State Listen -LocalPort 22

この接続で今このPCを遠隔操作していますか。

遠隔操作中にこの手順を行うと、操作中の接続が切れて戻れなくなるおそれがあります。このPCの前で作業してください。

手順

  1. 始める前に:今 SSH でこのPCを遠隔操作しているなら、ここで止めて、このPCの前で作業してください。接続元を間違えると、自分が入れなくなります。

  2. 管理者権限が必要

    管理者用の PowerShell を開きます。Windows 11 では、スタートボタンを右クリックして「ターミナル (管理者)」を選びます。「Windows ターミナル (管理者)」と出ることもあります。Windows 10 では、スタートボタンを右クリックして「Windows PowerShell (管理者)」を選びます。メニューに見当たらないときは、スタートで「PowerShell」と検索し、「管理者として実行」を選びます。「このアプリがデバイスに変更を加えることを許可しますか?」と出たら「はい」を押します。

  3. 管理者権限が必要

    22番を許可している今のルールを、このPCと同じネットワークを表す LocalSubnet からだけ受けるように書き換えます。新しいルールは足しません。広く許可するルールが残っていると、絞っても効かないためです。次のコマンドをコピーして貼り付け、Enter を押します。

    Get-NetFirewallPortFilter | Where-Object { $_.LocalPort -eq 22 } | Get-NetFirewallRule | Where-Object { $_.Direction -eq "Inbound" -and $_.Action -eq "Allow" } | Set-NetFirewallRule -RemoteAddress LocalSubnet
  4. 管理者権限が必要

    書き換わったかを確かめます。RemoteAddress が LocalSubnet になっていれば完了です。

    Get-NetFirewallPortFilter | Where-Object { $_.LocalPort -eq 22 } | Get-NetFirewallRule | Get-NetFirewallAddressFilter

直したら、もう一度診断すると確かめられます

アプリで診断する

出典

確認日:2026-10-21