Windows 版の OpenSSH とは?
Windows 版の OpenSSH は、GitHub 上で開発が進められており、Windows 10 1809、Windows Server 2019 以降の OS では OpenSSH のインストールが可能となっています。
OpenSSH Client が、プリインストールされている OS バージョンもありますので、特にインストール作業なしで使用することができます。ただ、インストールされているバージョンは、GitHub で公開されている最新バージョンではないため、最新の脆弱性対応や不具合修正が行われておりません。
Windows版の OpenSSH については、Microsoft の Web サイトに情報がありますので、目を通しておくといいと思います。
OpenSSH for Windows overview | Microsoft Learn
https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh-overview
今回は、一部の OS にプリインストールされている OpenSSH をアンインストールし、GitHub で公開されているバージョンをインストールする方法を紹介します。特に難しいことはありませんので、さくっと終わらせることができると思います。
プリインストールされている OpenSSH をアンインストール
まず、使用している端末に OpenSSH がインストールされているか確認します。PowerShell から以下のコマンドを実行し、Installed になっているかどうかで判断できます。
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
#実行結果例
# Name : OpenSSH.Client~~~~0.0.1.0
# State : Installed
# Name : OpenSSH.Server~~~~0.0.1.0
# State : NotPresent
この場合は、OpenSSH Client が、インストールされています。GitHub で公開されているバージョンを使いたいので、Installed となっている OpenSSH.Client または OpenSSH.Server を以下の PowerShell コマンドにより、アンインストールします。
# Uninstall the OpenSSH Client
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# Uninstall the OpenSSH Server
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
コマンドを実行後、OS を再起動し、アンインストールを環境させてください。ちなみに OS を再起動する前は、UninstallPending という状態になってます。
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
# 実行結果例
# Name : OpenSSH.Client~~~~0.0.1.0
# State : UninstallPending
# Name : OpenSSH.Server~~~~0.0.1.0
# State : NotPresent
GitHub 版 OpenSSH のインストール
1. GitHub から OpenSSH のインストーラーをダウンロード
GitHub のリリースページから、インストーラー(.msi)をダウンロードしてください。
Releases · PowerShell/Win32-OpenSSH
https://github.com/PowerShell/Win32-OpenSSH/releases
特に希望がなければ、最新版のインストーラーがいいと思います。
バージョン 9.5.0.0 の場合は、ARM64、Win32、Win64 がありますが、Arm の CPU を使用している場合は、ARM64版、それ以外の 32 bit 版 OS の場合は Win32、64 bit 版 OS の場合は Win64 をダウンロードしてください。
- OpenSSH-ARM64-v9.5.0.0.msi
- OpenSSH-Win32-v9.5.0.0.msi
- OpenSSH-Win64-v9.5.0.0.msi
2. インストーラー(.msi)から OpenSSH をインストール
GUI でのインストール方法は、用意されていないらしいので、msiexec コマンドを使用してインストールを実施します。インストールに関するコマンドは以下になります。
# SSH Client と SSH Server の両方をインストール(デフォルト設定)
msiexec /i "path to openssh.msi"
# SSH Client のみインストール
msiexec /i "path to openssh.msi" ADDLOCAL=Client
# SSH Server のみインストール
msiexec /i "path to openssh.msi" ADDLOCAL=Server
# SSH Client のみアンインストール
msiexec /i "path to openssh.msi" REMOVE=Client
# SSH Server のみアンインストール
msiexec /i "path to openssh.msi" REMOVE=Server
OpenSSH Client のみインストールする時の実行例は、以下になります。
msiexec /i OpenSSH-Win64-v9.5.0.0.msi ADDLOCAL=Client
インストールが完了したかは、Get-Command の実行結果が正しく返ってくるかで確認できます。
Get-Command ssh | fl *
<# 実行結果例
HelpUri :
FileVersionInfo : File: C:\Program Files\OpenSSH\ssh.exe
InternalName:
OriginalFilename:
FileVersion: 9.5.0.0
FileDescription:
Product: OpenSSH for Windows
ProductVersion: OpenSSH_9.5p1 for Windows
Debug: False
Patched: False
PreRelease: False
PrivateBuild: False
SpecialBuild: False
Language: 英語 (米国)
Path : C:\Program Files\OpenSSH\ssh.exe
Extension : .exe
Definition : C:\Program Files\OpenSSH\ssh.exe
Source : C:\Program Files\OpenSSH\ssh.exe
Version : 9.5.0.0
Visibility : Public
OutputType : {System.String}
Name : ssh.exe
CommandType : Application
ModuleName :
Module :
RemotingCapability : PowerShell
Parameters :
ParameterSets :
>#
3. コマンドを実行
最後に、コマンドが正常に実行できるかためしてみます。
# ssh コマンド
ssh -V
ssh -vvv username@hostname
# sftp コマンド
sftp -vvv username@hostname
特にエラーが発生しなければ導入完了です。
GitHub版 OpenSSH のアンインストール
やっぱり使わないなってなったら、msiexec /x "path to openssh.msi"
でアンインストール可能です。
msiexec /x OpenSSH-Win64-v9.5.0.0.msi
さいごに
Windows で OpenSSH が簡単に使えていいですね。GitHub 版のほうが最新の脆弱性対応がされているので、そちらを使ったほうがいいかなと思います。
参考 URL
Home · PowerShell/Win32-OpenSSH Wiki
https://github.com/PowerShell/Win32-OpenSSH/wiki