WindowsにSSH接続してコマンドで操作する方法

WindowsにSSH接続してコマンドで操作する方法。

Windowsマシンをリモートからコマンドで操作したい場合、リモート操作に対応したコマンドを利用するというのが一般的ですが、現在のWindows 10や11、Windows Serverなら、リモート操作したいWindowsマシンにOpenSSHサーバー機能を追加することで、リモーマシンにSSH接続して、WindowsコマンドやPowerShellを使って操作することができます。

そこでここでは、Windows 10にOpenSSHサーバーを構築/設定して、リモートからコマンド操作する方法を解説します。

OpenSSHサーバーのインストール

OpenSSHサーバーは、Windowsの機能から追加インストールが可能です。

Windowsの設定からインストール

Windowsの設定からOpenSSHサーバーをインストールするときは、Windowsの「設定」から「アプリ」>「アプリと機能」を開き「オプション機能」をクリックします。

WindowsにSSH接続してコマンドで操作する方法。

オプション機能画面が表示されるので「機能の追加」をクリックします。

WindowsにSSH接続してコマンドで操作する方法。

機能の追加画面が表示されるので、一覧から「OpenSSHサーバー」にチェックを入れて「インストール」をクリックします。

WindowsにSSH接続してコマンドで操作する方法。

インストールしたSSHサーバーは「OpenSSH SSH Server」サービスとして登録されており、SSHサーバーを開始するときは、デフォルトでは手動でサービスを開始する必要がありますが、自動開始するよう設定してWindows起動時に自動的に開始するよう設定することもできます。

また「Windows Defener ファイアウォール」を利用しているマシンでは、SSHサーバー機能をインストールすると自動的に受信許可設定が追加されるので設定作業は不要ですが、サードパーティーのセキュリティ対策ソフト利用している場合は、セキュリティ対策ソフト側でTCP22番ポートでの受信接続を許可する必要があります。

以上で、OpenSSHサーバーのインストール完了です。

PowerShellコマンドレットでインストール

PowerShellコマンドレットでOpenSSHサーバーをインストールするときは、管理者権限でPowerShellを起動して、まず以下のコマンドを実行して、追加するOpenSSHサーバー機能の名称を確認します。

PS> Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*'

WindowsにSSH接続してコマンドで操作する方法。

OpenSSHサーバー機能の名称を確認したら、以下のコマンドで機能名を指定してOpenSSHサーバーをインストールします。

PS> Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

次に、以下のコマンドでOpenSSHサーバーサービスの起動させます。

PS> Start-Service sshd

ファイアウォール機能を搭載したサードパーティーのセキュリティ対策ソフト利用している場合は、セキュリティ対策ソフト側でTCP22番ポートでの受信接続を許可する必要があります。

以上で、OpenSSHサーバーのインストール完了です。

OpenSSHサーバーの設定

インストールしたOpenSSHサーバーは、デフォルト設定のままでも利用できますが、セキュリティを強化したいときなど、設定を変更したいときは「C:\ProgramData\ssh\sshd_config」ファイルを編集します。

なお、sshd_configファイルは、OpeSSHサーバーのサービスを初めて起動したときに自動生成されます。

設定ファイルには、たくさんの設定項目が記述されていますが、主だった設定項目は、次のとおりです。

  • Port (XX):ssh接続に使いたいポート番号(1024 〜 65535)を指定できます。
  • SyslogFacility (AUTH/LOCAL0):ログをイベントログに記録するかファイルに記録するかを指定できます。
  • LogLevel (DEBUG/INFO/ERROR/CRITICAL):ログの詳細度を指定できます。
  • PubkeyAuthentication (yes/no):公開鍵認証方式を有効化するかを指定できます。
  • PasswordAuthentication (yes/no):パスワード認証を許可するかを指定できます。
  • PermitEmptyPasswords (yes/no):空パスワードでのアクセスを許可するかを指定できます。
  • AllowGroups、AllowUsers、DenyGroups、DenyUsers:ssh接続を許可(禁止)するユーザーやグループを指定できます。

WindowsにSSH接続してコマンドで操作する方法。

それぞれの設定項目にどのような値を設定できるかは、以下の公式ページが参考になるでしょう。

Windows 用 OpenSSH サーバー構成 | Microsoft Learn

OpenSSHサーバーに接続

インストールしたSSHサーバーにリモートからSSH接続する場合、既定のシェルはWindowsコマンドに設定されているため、コマンドプロンプトと同じ操作でリモートマシンを操作できます。

WindowsにSSH接続してコマンドで操作する方法。

また、PowerShellコマンドレットを利用したいときは、プロンプトで「powershell」と入力して実行すれば、PowerShellが起動しPowerShellコマンドレットを使ってリモートマシンを操作できます。

WindowsにSSH接続してコマンドで操作する方法。

あとがき

Windowsマシンをリモートから操作する場合、リモートデスクトップなどで接続して操作するのが一般的ですが、コマンドで操作したい場合は、ここで紹介したSSH接続する方法も検討の余地は十分にあるでしょう。