2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows 版 OpenSSHって知ってます?

Last updated at Posted at 2024-09-20

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

2
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?