🐕

windows11proでsshd

に公開

はじめに

  • windows11pro に sshd を実行。
  • windows11home から ssh 接続する。
  • home の wsl から、 pro の wsl に接続できる?
  • 最終的には pro の docker のコンテナに ssh 接続する。

sshd インストールというか有効化

powershell7 から操作する。 このときは管理者権限で起動しておくこと。

確認

Get-WindowsCapability -Online | Where-Object Name -Like 'OpenSSH*'

有効化

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

とても遅かった。 バーがなかなか進まなかったから、dockerdesktop を落としたり、設定画面を閉じたり、コンソール画面でリターンキーたたいてみたりしたらバーが動いた。 我慢が足りなかったかな?

再確認

起動

Start-Service -Name sshd

自動起動設定

Set-Service -Name sshd -StartupType Automatic

接続

windows11home 側から接続してみて、つながったので作業としては、以上でいいみたい。

key で接続するときは

home 側でキーを作成

ssh-keygen -t ed25519

pro 側でキーを登録

midkri .ssh
cd .ssh
notepad authorized_keys
ren authorized_keys.txt authorized_keys
パーミッション

エクスプローラで、プロパティの詳細を開いて、「継承の無効化」で明示的な許可に変換する。
自分とsystem だけ残して、他は削除する。

実は C:\ProgramData\ssh\sshd_configStrictModes yes がコメントアウトされているので、
パーミッションの変更は不要でした。

キー認証を有効にする

notepad を管理者権限で起動し、 C:\ProgramData\ssh\sshd_config を開く。
PubkeyAuthentication yes のコメントをはずす。

接続ユーザが admin 権限があるとまずいので、これもコメントアウトする。

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

再起動

Restart-Service sshd

おまけ

firewall の設定

以下はつながったのでやっていませんが、gemini に聞いてみたら設定してといわれたので、メモっときます。

事前確認

Get-NetFirewallRule -DisplayName *SSH*

gemini が言ってたコマンドはこれだけど、結局実行しなかった。

New-NetFirewallRule -DisplayName "OpenSSH (Port 22)" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 22 -Program "%SystemRoot%\System32\OpenSSH\sshd.exe" -Description "Allow SSH connections to the server on port 22."

おわり

docker のコンテナにつなぎたいけど、記事が長くなりそうなので、いったんここまでにします。
あ、wsl のところも、いったん忘れてくださいw

Discussion