Windows PCへのOpen SSHサーバーの導入

0.概要

Windows PC(Windows 10以降)には、Open SSHのクライアントは標準でインストールされていますので、Windows PCからPDH(Raspberry Pi)やEdge Server(Ubuntu)へのsshによる接続やsftpによるファイルの送受信が可能になっています(PDH側のSSHの許可の方法に関しては、こちら(VNC、SSHの許可)をご覧ください。 また、UbuntuへのOpen SSHのインストール方法は、こちら(ssh, sftp:open-ssh)をご覧ください)。
逆にPDHやEdge ServerからWindows PCへsshによる接続やsftpによるファイルの送受信を行うためには、Windows PCにOpen SSHサーバーをインストールし、起動しておく必要があります。幸い、Windows 10以降ではOpen SSHがオプション機能として準備されていますので、比較的簡単に導入ならびに起動できます。
ここでは、Windows 11への導入を説明します。Windows 10でも基本的には同じです。Windows 10へのインストールならびに起動に関しては、参考HP(OpenSSH を使用して Windows SFTP サーバーをセットアップするおよびクライアントとサーバーでパスワード認証を使用した SFTP のセットアップと動作確認を行う)をご覧ください。

全体の流れは、以下の様になります。
1. Windows11にOpenSSHサーバーをインストール
2. sftpアカウントの作成
3. sshのポートオープン(Windows Difender ファイアウォールの設定)
4. sshサービスの起動設定
5. sshサービスの起動確認
6.sftpでのファイルの送信確認

では、順に説明していきます。

1. Windows11にOpenSSHサーバーをインストール

1) スタートメニューの「設定」をクリックします。

2)「アプリ」を選びます。
3) アプリの中の「オプション機能」を選択します。

4)「オプション機能を追加する」の「機能を表示」ボタンをクリックします。インストールされている機能を見ると、「OpenSSH クライアント」がインストール済みであることがわかります。

5)「オプション機能を加する」一覧が出てきます。「OpenSSH サーバー」にチェックを入れて「次へ」をクリックします。

6)「インストール」をクリックしてインストールを開始します。

7)しばらくするとインストールが完了します。

8)一覧に追加されました。

2. sftpアカウントの作成

sftpでログインするユーザーのアカウントを作成します。Windows11では、ローカルアカウントを作成することになります。
1) スタートメニューから「設定」をクリックし、「アカウント」を選択します。
2) 「他のユーザー」を選択します。

3) 「アカウントの追加」をクリックします。

4) 「どのようにサインインしますか?」と聞いてきますので、「このユーザーのサインイン情報がありません」をクリックします。

5) ローカルアカウントを作成する場合は、「Microsoft アカウントを持たないユーザーを追加する」をクリックします。

6) ユーザー名とパスワードを入力し、パスワードを忘れたときの質問に答えて「次へ」を押します。

7) ローカルアカウントが作成されました。
下矢印をクリックするとアカウントの種類の変更と削除ができます。

3. sshのポートオープン(Windows Difender ファイアウォールの設定)

ファイアウォールのポート22番を開けます。
1)スタートメニューの「すべてのアプリ」をクリックします。

2) Windowsツールをクリックします。

3) 「セキュリティ強化されたWindows Difender ファイアウォール」をダブルクリックして起動します。

4) 「受信の規則」をクリックします。

5) 「新しい規則」をクリックします。

6) ウィザードが起動しますので、「ポート」をチェックし、「次へ」を押します。

7) TCPと特定のローカルポートをチェックします。特定ポート番号として“22“を入力します。「次へ」を押します。

8) 「接続を許可する」をチェックして選びます。「次へ」を押します。

9) 環境に合わせて「ドメイン」「プライベート」「パブリック」にチェックを入れます。ここでは、「ドメイン」と「プライベート」にチェックを入れます。
「次へ」を押します。

10) 名前を入力して、「完了」を押します。ここでは「SSH」という名前にしています。

11) 一覧に追加されました。

4. sshサービスの起動設定

1) スタートメニューを右クリックして「コンピュータの管理」を選択します。

2) 「サービスとアプリケーション」の下の「サービス」を選択します。
3) サービスの一覧が出てきますので、スクロールして、OpenSSH SSH Serverを選ぶと,左側に「サービスの開始」のリンクが表示されますので、クリックして、サービスを起動します。

4) PC再起動時に自動で起動するように設定します。
OpenSSH SSH Serverをダブルクリックするとプロパティ画面が現れます。「スタートアップの種類」をドロップダウンメニューを使って「手動」から「自動」に変更して「OK」を押します。

5. sshサービスの起動確認

1) コマンドプロンプトを開いて、ローカルアカウントを使って、以下のコマンドを入力します。
      > ssh sftp-user@localhost
本当に接続しますか?と聞いてきますので、yesと入力します。
パスワードを聞いてきますので、ローカルアカウントを作成した時のパスワードを入力します。
表示が変わり、sshで入れたことがわかります。

2) > dir と入力すると、ディレクトリの表示が出てきます。ロー各アカウントのディレクトと表示されています。
OpenSSHのSSHサーバーが動作してくることが確認できました。
3) > exit でsshを抜けられます。

6. sftpでのファイルの送信確認

PDHから、Windows PCにsftpでファイルを送信します。
1) PDHからsftpでアクセスします。
  $ sftp sftp-user@(接続先IPアドレス)
2) 本当に接続しますか?と聞いてきますので、yesと入力します。
3) パスワードを入力します。
4) 接続したらディレクトリを移動します。$ cd temp
5) ファイルをputします。
  $ put Control.ini
6) sftpを抜けます。

7) Windows PCでファイルが置かれているかを確認します。
    C:\Users\sftp-user\temp
の下に、Control.ini が置かれています。
中身を確認してテキストのデータが読めることを確認できました。