2024-01-14

Chocolatey で Portable OpenSSH を更新する 2024

少し前の話。 2024 を目前にして、久しぶりに Chocolatey に OpenSSH の β が降ってきてた。 Chocolatey Software | Win32 OpenSSH (Universal Installer) 9.5.0-beta1

前回は 2023-05 だった。 2023-05-20 - Chocolatey で Portable OpenSSH を更新する 2023

2023-05 に自分で bump したとき、 /SSHServerFeature を使うって書いてた。 でも、これ uninstall-sshd.ps1 で sshd service を消しておいたら /SSHAgentFeature でもエラーせずに更新できるわ、というのに今更気づいた。 そも sshd が立つのも、自分の PowerShell profile で ssh-agent のサービスがいないときに install-sshd.ps1 してるからなので。

openssh · master · DarwinJS / ChocoPackages · GitLab

-params '"/SSHAgentFeature"'

Installs SSH Agent Service even if SSHD Server is not being installed. Requires admin rights to configure service. IMPORTANT: ssh-agent is no longer required for sshd after version openssh 1.0.0.0

ちゃんとドキュメント読んでいこうぜ。

# 一度 uninstall しておく
uninstall-sshd.ps1
choco uninstall openssh -y
# 消えたの確認
Get-Service ssh-agent | select -Property Name,ServiceHandle,DisplayName,ServiceType,StartType

# 入れ直す
choco install openssh -params '"/SSHAgentFeature"' -y
Get-Service ssh-agent | select -Property Name,ServiceHandle,DisplayName,ServiceType,StartType

# Name : ssh-agent
# ServiceHandle : Microsoft.Win32.SafeHandles.SafeServiceHandle
# DisplayName : ssh-agent
# ServiceType : Win32OwnProcess
# StartType : Automatic

install-sshd.ps1ssh-agent 入れると、 StartType: Manual になるから別途 Automatic に変更する必要があった。 正しい手順ならそのひと手間もいらないぽい。

2019-03-31 - Windows10 の更新で OpenSSH が逝った ではちゃんと /SSHAgentFeature 使ってた。 なのにその後 2019-06-29 - また OpenSSH が動かなくなる季節がやってきた でそれを忘れて install-sshd.ps1 でサービス起動するように変えてた。これがことの発端ぽいな。

その後 Chocolatey で Portable OpenSSH を更新する 2023 で判断を誤る。 /SSHAgentFeature じゃなく /SSHServerFeature を使うようになってしまった。 期間が開くと色々ノウハウが失われていく教科書的なパターン。

今後はちゃんと /SSHAgentService 使ってやるようにせなあかんな。 ひとまず profile で ssh-agent サービス立ち上がってなかったら install-sshd.ps1 流すような記述してのを消した。


にしてもわたしの profile も継ぎ足し守られた秘伝のタレ化して、管理が難しくなってきてる。 もう利用してないやつは消したり、必要な初期化は関数小分けにするとかして改善せなあかん時がきたか...

Gist で 1 ファイルだけ管理してるのも download のやりやすさや更新のしやすさがあっていいけど、なんか他の方法考えなあかんかもな。 古くは VS Code の Gist 、最近は GistPad で編集してる。 楽に編集できて便利やからなー、他の方法としたら git repo があるけどやっぱ手軽さは劣るよな。