Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法

Windows 10(バージョン1809以降)およびWindows Server 2019には、OpenSSHベースのSSHサーバーが標準機能として組み込まれています。本記事では、Windows 10にOpenSSHサーバーをインストールして構成し、Linuxと同じように暗号化されたSSHプロトコル経由でリモート接続する方法を詳しく解説します。

なお、それ以前のバージョンのWindowsにもOpenSSHサーバーを導入することは可能ですが、その場合はGitHub(https://github.com/powershell/Win32-OpenSSH)からWin32版OpenSSHを手動でダウンロードしてインストールする必要があります。Win32-OpenSSHのインストールおよび設定手順については、「WindowsにSFTPサーバー(SSH FTP)をインストール&設定する方法」の記事を参照してください。

目次

  • WindowsにOpenSSHサーバーをインストールする方法
  • Windows 10 / Windows Server 2019でのSSHサーバーの設定
  • OpenSSHサーバーの設定ファイル(sshd_config)
  • Windows 10へSSHで接続する方法

WindowsにOpenSSHサーバーをインストールする方法

ここでは、Windows 10 1903へのOpenSSHサーバー機能のインストール手順を見ていきます(Windows Server 2019でも手順は同じです)。

OpenSSHパッケージ(RSATと同様)は、これらの(およびそれ以降の)WindowsバージョンではFeature on Demand(FoD)として追加されています。

インターネットに直接接続できる環境であれば、PowerShellで次のコマンドを実行してOpenSSHをインストールできます:

Add-WindowsCapability -Online -Name OpenSSH.Server*

またはDISMを使用します:

dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

また、「設定」画面からもインストール可能です(アプリ → アプリと機能 → オプション機能の管理 → 機能の追加)。一覧からOpenSSH サーバーを探して「インストール」をクリックしてください。

Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法

OpenSSHサーバーが正しくインストールされたかどうかを確認するには、次のコマンドを実行します:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'

State : Installed

Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法

Windows 10 / Windows Server 2019でのSSHサーバーの設定

WindowsにOpenSSHサーバーをインストールした後は、sshdサービスのスタートアップの種類を「自動」に変更し、サービスを開始します。PowerShellで以下のコマンドを実行してください:
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd

Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法
netstatコマンドを使って、SSHサーバーがTCPポート22で接続を待ち受けていることを確認します:
netstat -na| find ":22"
Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法
さらに、Windows DefenderファイアウォールがTCPポート22への受信接続を許可していることも確認しておきましょう:
Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled

Name DisplayName Description Enabled
---- ----------- ----------- -------
OpenSSH-Server-In-TCP OpenSSH SSH Server (sshd) Inbound rule for OpenSSH SSH Server (sshd) True

Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法

ルールが無効になっている場合(Enabled=False)や存在しない場合は、New-NetFirewallRuleコマンドレットで新しい受信ルールを作成できます:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

デフォルトでは、重要なOpenSSHコンポーネントは以下のフォルダに配置されます:

  • OpenSSHサーバーの実行ファイル:C:\Windows\System32\OpenSSH\
  • sshd_configファイル(初回サービス起動後に作成される):C:\ProgramData\ssh
  • OpenSSHのログ:C:\windows\system32\OpenSSH\logs\sshd.log
  • authorized_keysファイルと各種キー:%USERPROFILE%\.ssh\

なお、OpenSSHのインストール後には、コンピューター上に新しいローカルユーザー(sshd)が自動的に作成されます。

OpenSSHサーバーの設定ファイル(sshd_config)

OpenSSHサーバーの各種設定は、%programdata%\ssh\sshd_configファイルで変更できます。

例えば、特定のドメインユーザーアカウント(またはすべてのドメインユーザー)によるSSH接続を拒否したい場合は、ファイルの末尾に以下のディレクティブを追加します:

DenyUsers woshub\admin@192.168.1.10
DenyUsers corp\*

特定のドメイングループのみにSSH接続を許可する場合:

AllowGroups woshub\sshadmins

ローカルグループに対してアクセスを許可することもできます:

AllowGroups sshadmins

管理者権限を持つアカウントへのアクセスを拒否することも可能です。この場合、SSHセッション内で特権操作が必要になったときはrunasを使用する必要があります。

DenyGroups Administrators

以下のディレクティブにより、RSAキーとパスワードを使用したSSHアクセスが有効になります(RSAキーを使ったWindowsへのSSHアクセス方法については、次回の記事で詳しく解説します):

PubkeyAuthentication yes
PasswordAuthentication yes

また、sshd_configファイルのPortディレクティブを変更すれば、OpenSSHが接続を受け付けるポート番号を変更することもできます。

Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法

sshd_configファイルに変更を加えた後は、sshdサービスの再起動が必要です:

restart-service sshd

Windows 10へSSHで接続する方法

これで、SSHクライアント(筆者はPuTTYを使用していますが、Windows標準のSSHクライアントでも問題ありません)からWindows 10への接続を試すことができます。

初回接続時には、接続先ホストを既知のSSHホストのリストに追加するかどうかを尋ねる標準的なメッセージが表示されます。

Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法

「はい」をクリックし、WindowsユーザーアカウントでWindows 10にログオンします。

Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法

SSH接続が成功すると、プロンプト付きのcmd.exeシェルが起動します。

admin@win10pc C:\Users\admin>

Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法

このコマンドプロンプトから、さまざまなコマンド、スクリプト、アプリケーションを実行できます。

Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法

筆者はPowerShellコンソールで作業するのが好みです。起動するには、次のコマンドを実行します:

powershell.exe

Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法

OpenSSHのデフォルトシェルをcmd.exeからPowerShellに変更したい場合は、次のPowerShellコマンドでレジストリを書き換えます:

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String –Force

Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法

SSH接続を再確立し、PowerShellがデフォルトのSSHシェルとして使用されていることを確認しましょう(PS C:\Users\admin>と表示されれば成功です)。

Windows 10 / Windows Server 2019に標準搭載されたOpenSSHサーバーでSSH接続を構築する方法

SSHセッション内でPowerShellコンソールが起動し、タブ補完、PSReadLineによる色分け表示、コマンド履歴など、おなじみの便利な機能がそのまま利用できます。さらに、現在のユーザーがローカルのAdministratorsグループのメンバーであれば、UACが有効になっている場合でも、セッション内のすべてのコマンドが昇格された権限で実行される点も見逃せません。

  1. Omegleで「サーバーへの接続中にエラーが発生しました」と表示される場合の対処法

    Omegleは、世界中の見知らぬ相手とビデオチャットができるチャットルームサービスで、同種のサービスの中でも最も成功したウェブサイトの一つと言われています。しかしこのサイトでは、「Error connecting to server(サーバーへの接続中にエラーが発生しました)」というエラーメッセージが表示され、サービスをまったく利用できなくなる問題が依然として報告されています。この問題は比較的簡単に解決でき、世界各地にさまざまな対処法が存在します。ここでは、その中でも特に効果が実証されている方法を厳選してご紹介します。Omegleでサーバー接続エラーが発生する原因とは?このエラーの主な原因の一

  2. SSHサーバーを使って動かなくなったWindows PCにアクセス・復旧させる方法

    システムが突然クラッシュし、どんなコマンドにも応答しなくなることは珍しくありません。さらに困るのは、大事なファイルにアクセスしたいのにPCがまったく動かせない状態になってしまったときです。しかし、心配はいりません。SSHサーバーを活用すれば、不具合を起こしたWindows PCにもアクセスでき、事態を打開できる可能性があります。まずは、SSHについて簡単におさらいしておきましょう。SSHサーバーとは?SSH(Secure Shell)は、安全性の確保されていないネットワーク上でも、ネットワークサービスを安全に操作できるように設計された暗号化通信プロトコルです。代表的な用途としては、別のコンピュ