スタートメニューを右クリックして「設定」を選択します。
スタートメニューから設定選択
表示された設定画面をスクロールして、バージョン情報を選択します。
バージョン情報 選択
バージョン情報が表示されます。
表示されているバージョンが今回の記事で利用しているバージョンです。
この場合、Windows11 Pro のバージョンが 22H2 で、OS ビルドが 22621.1848 になります。
Windows バージョン情報
続けて ssh をインストールするため、この画面のメニューからアプリを選択します。
アプリ画面に移動したら、オプション機能を選択します。
オプション機能
「オプション機能を追加する」の「機能を表示」を選択します。
機能を表示
OpenSSH サーバーを選択して、チェックがついたら「次へ」を選択します。
オプション機能を追加する
追加する機能を確認されるので、OpenSSH サーバーが表示されていることを確認して「インストール」を選択します。
インストール対象確認
OpenSSH サーバーがインストールされるのを待ちます。
インストール 待機
インストールされると、インストール済みと表示されます。
もしくは、もう一度アプリのオプション機能画面を表示して、OpenSSH サーバーがあればインストールされています。
インストール確認
OpenSSH サーバーは、サービスとして起動しないと SSH ログインできません。
サービス起動するために、まずスタートメニューを右クリックして「コンピューターの管理」を起動します。
コンピューターの管理選択画面
ここから「サービスとアプリケーション」→「サービス」へ移動すると「OpenSSH SSH Server」があります。
サービス選択画面
「OpenSSH SSH Server」をダブルクリックして「OpenSSH Server のプロパティ」を開きます。
まず、サービスが停止していることが分かります。
OpenSSH SSH Server のプロパティ画面
「開始」ボタンをクリックして、サービスを実行しておきます。
また、Windows を起動したらサービスも起動させたい場合は、「全般」タブの「スタートアップの種類」を「手動」から「自動」に変更して「OK」ボタンをクリックします。
スタートアップの種類選択画面
普段、私は Windows に xxx@hotmail.co.jp のアカウント(いわゆる Microsoft アカウント)を利用してログインしています。
このアカウントでは、ssh によるリモートアクセスができませんでした。
ということで、ローカルアカウントの作成が必要です。
スタートメニューを右クリックしたときにでる「コンピューターの管理」は、すでに起動しているものと思います。
「コンピューターの管理(ローカル)」→「システムツール」→「ローカル ユーザーとグループ」→「ユーザー」と開いていくと、sshd ユーザが自動で作られているのが確認できました。
この「ユーザー」か、「ユーザー」を選択して出てきた右ペインを右クリックすると「新しいユーザー」が出てくるので、これをクリックして ssh 接続するための新しいユーザーを追加します。
RDP だと、Administrators グループまたはリモートデスクトップユーザーグループに追加しなければなりません。
ここで作成したアカウントは Administrators グループに入れてしまいましたが、OpenSSH でのアクセスの場合はユーザー登録だけで良いようです(未確認)。
OpenSSH サーバーとして設定は、以下フォルダの設定ファイルで行います。
%SystemRoot%\System32\OpenSSH
管理者権限でテキストエディタを起動したら sshd_config_default を開いて sshd_config という名前で別名保存します。
コマンドプロンプトを管理者権限で起動すると、簡単にコピーできます。
Win キーを押して cmd を入力し、Ctrl + Shift キーを押しつつ Enter すると、管理者権限でコマンドプロンプトを起動できます。
C:\WINDOWS\system32>cd OpenSSH
C:\Windows\System32\OpenSSH>dir
C:\Windows\System32\OpenSSH>copy sshd_config_default sshd_config
C:\Windows\System32\OpenSSH>notepad sshd_config
C:\Windows\System32\OpenSSH>
Norton Internet Security をインストールしていますが、LAN 内の Linux サーバからアクセスする場合、特に何の設定も必要なくアクセスできました。
アクセスできない場合、インストールされているアンチウィルスソフトの設定を確認してみてください。
Tera Term でアクセスする場合、通常の UNIX / Linux へアクセスするのと手順は同じです。
そのまま localhost:22 へ ssh アクセスすると、通常のログイン処理でアクセス可能です。
詳細については、Win10 SSH サーバ設定 の SSH 接続方法を参照してみてください。
以降、2024.3.2 追記。
質問があり、現時点のバージョンでローカルアカウントを作って、Tera Term でアクセスできることを確認しましたので、簡単に追記します。
Windows11 端末に、管理権限のあるユーザでログインしていることをユーザー作成の前提条件とします。
記事に投稿当時より Windows のバージョンが上がっているので、現時点のバージョン情報を記載します。
Ctrl + Shift + Esc 等でタスクマネージャーを起動し、サービスを選択します。
ここで、状態が「停止」であれば、右クリックして開始をクリックし、実行中にさせます。
上記画像の通り、sshd の「状態」欄が「実行中」になっていれば大丈夫です。
ユーザー作成ですが、開いているタスクマネージャーのメニューからユーザーを選択して、そのままユーザーアカウントの管理をクリックします。
ユーザーアカウントの画面がでたら、別のアカウントの管理を選択します。
「PC 設定で新しいユーザーを追加」をクリックします。
「アカウントの追加」をクリックします。
Microsoft アカウント画面が表示されたら「このユーザーのサインイン情報がありません」を選択します。
続いて「Microsoft アカウントを持たないユーザーを追加する」を選択します。
やっとローカルアカウントを作成する画面が表示されるので、必要事項を入力します。
ここでは、サンプルとして test ユーザーを作成します。
まず、ユーザー名とパスワードを入力します。
下へスクロールして、パスワードを忘れた場合の質問に回答します。
ここでは、すぐに削除するので x で埋めていますが、忘れた際に必要になります。
すべて入力して「次へ」をクリックすると、以下の「ほかのユーザー」画面に戻りますので、ユーザーが作られたことを確認します。
ここで作られたユーザーの「アカウントの種類」は「標準ユーザー」です。
リモートアクセスするユーザーに管理者権限が必要な場合は、別途管理者権限を付与してください。
レビュービルド26052以降であれば、Linux の sudo コマンドと同じコマンドが実装されるとのこと。
Tera Term で Windows 11 に対してアクセスし、先ほど設定したユーザー名およびパスワードを入力すると、Windows 11 のターミナル(ここではデフォルトの cmd.exe を利用)にログインできます。
ここでは Raspberry Pi からアクセスしていますが、ローカル (localhost)でもアクセス可能です。
流れを見てもらえれば分かる通り、SSHd が動作していれば、Windows 端末の「標準ユーザー」で Tera Term から SSH アクセスが可能です。