🐕
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_config
の StrictModes 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