2025-02-16

Chocolatey の OpenSSH をやめて WinGet の OpenSSH にする 2025

最近の活動は、 pocof の benchmark に基づいた細かい改善とか、 Command-line predictor を作り始めたのとか。 でも今日は最早わたしの中で恒例となった Chocolatey での OpenSSH 話を記す。


随分長い間気づいてなかったのだけど OpenSSH の Chocolatey の 最新 prerelease 壊れとるね。

openssh 9.5.0-beta20240403 seems to contain OpenSSH_for_Windows_8.6p1, (#105) · Issues · DarwinJS / ChocoPackages · GitLab

気づかず使ってた。 repo 見ても最新は上記のママだし、変なバイナリ使ってたんかと思ってゾッとしたわ... 一応以下のコマンドで一つ前の正しいやつに戻せる。

choco install openssh --version=9.5.0-beta1 -params '"/SSHAgentFeature"' -y -pre --force
choco pin add --name='openssh'

念の為 9.5.0-beta1 に固定したけどこれからどうしよかね。 Windows 11 の標準の SSH が更新によって 9.5.2.1 になってる1ので、 Chocolatey のやつを使う意味がないという。

Windows の OpenSSH の install に Universal Installer を使うのはもう長らく deprecated で、ただ chocolatey で管理するの楽なので依存し続けてた。 [Deprecated] Win32 OpenSSH Automated Install and Upgrade using Chocolatey · PowerShell/Win32-OpenSSH Wiki

今の公式な install 手段としては MSI 直WinGet な感じはする。 この手段でなら最新の beta も取れるし。 WinGet にはまだあんま踏み込んでないけど、この機会に始めるべきかな~ そんで DSC も嗜む?みたいな。

何度か WinGet への移行は考えてたけど、ビミョーに痒いところに手が届かないのよな。 Maven がないとか(mvn はもう殆ど使わないのだけど krymtkts/MavenAutoCompletion がある関係で一応必要)。 Maven がないのは Scripted-Application って label が付いてる *.bat とか *.cmd とかの script として提供されてる application の install を WinGet の security policy で禁じてるからなので...どうしようもない。

でもずっと許可しないとか有り得んよな~と思って調べたら、やっぱ issue に挙がってきてた(それにしては随分最近でびっくりした)。

Support other portable application formats · Issue #5083 · microsoft/winget-cli

というわけで WinGet の今後に期待し、とりあえず新しいのを使いたいから一旦 OpenSSH だけ winget に移行した

winget install --id Microsoft.OpenSSH.Preview --scope machine --override ADDLOCAL=Client

Chocolatey から WinGet へのスムースな移行とかもできるかわからんので当面は二刀流か。 続く。


  1. 多分これか → OpenSSH for Windows の 2024 年 10 月の更新について | Microsoft Japan Windows Technology Support Blog