OpenSSHを使ったSFTPサーバーの構築（Windows11）

## OpenSSHのインストール
:::note info
Windowsの設定画面からOpenSSHの機能を追加することができる。
:::
・Windowsの設定を開く。（ショートカット：Win＋I）
・「オプション機能」で検索し、「オプション機能の追加」を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/283b00e1-b946-3c1c-f0fa-985fdd3d1576.png)

・「オプション機能を追加する」の右にある「機能を表示」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/50d69c4d-583a-38ec-ab81-5a3284a8919e.png)

・「OpenSSH」で検索して出てくる「OpenSSH サーバー」にチェックを入れて「次へ」をクリック。続けて「追加」をクリック。数分かかる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/b8251285-ff57-0e8e-bde4-9112ca780f1b.png)

・オプション機能の画面で「OpenSSH」で検索して「OpenSSH サーバー」があればOK。「OpenSSH クライアント」はデフォルトで入っている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/7556f534-64a0-d4e8-f274-86faecca3895.png)

## ユーザーの作成
:::note info
WindowsPCのユーザー情報がSFTP認証に使用されるので、必要に応じて追加する。
:::

・Windowsの設定を開く。（ショートカット：Win＋I）
・「他の」で検索し、「他のユーザー」を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/644ac0fe-5d94-9c18-0edd-a8aff967d926.png)

・「アカウントの追加」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/b705cf5f-b1ee-767e-8090-2b21896b5447.png)

・「このユーザーはサインイン情報がありません」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/8a643572-f008-cb1a-1ab6-8a11ed473ad8.png)

・「Microsoftアカウントを持たないユーザーを追加する」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/8a3fcced-7e43-2ebb-0a2b-fd7b82115645.png)

・ユーザー名、パスワード、パスワードを忘れた場合の質問と答えを入力して「次へ」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/2004e741-27f1-e634-e5b5-e0fdbac57d8e.png)

・設定したユーザーが表示される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/054c656b-c1fa-a00f-8c1a-715aed535fc6.png)

## SSHのポート設定
:::note info
＜追記 20240511＞　
この項目は必要なかった。オプション機能を追加した時点で、自動的に受信の規則が追加される。下図参照。ただし、ポート番号が22固定になっているので他のポート番号を使いたい場合はこの項目の手順でポートの設定が必要。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/ab3c0f85-fb55-b39b-7b1a-579b195a4632.png)

:::
:::note info
SSH通信に割り当てるポートを設定する。
:::

・スタート画面で「セキュリティ」で検索して、「セキュリティが強化されたWindowsDefenderファイアウォール」を開く。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/5286bf70-14bf-7a87-b32c-401d2b8de6af.png)
・「受信の規則」を右クリックし、「新しい規則」を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/46b1038c-4562-5a90-e552-2184083cbaa4.png)
・「ポート」を選択し、「次へ」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/1c610ee2-41f6-8d3d-8d3a-107891df2613.png)
・「TCP」を選択。「特定のローカルポート」を選択。「22」を入力し「次へ」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/8949af2b-2fa9-5452-b4a4-8dd12b517752.png)
・「接続を許可する」を選択し、「次へ」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/33f2a84d-ccb6-b3d3-02e4-f0a9407c70a9.png)
・とりあえずネットワーク経由で使わない想定なので「パブリック」の選択を外して、「次へ」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/c407d412-c144-42e1-759c-16cb54fb3c02.png)
・わかりやすい名前を付けて、「完了」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/9e0486ca-2d81-5155-775f-a15ab6f91cd2.png)
・一覧に出ていればOK。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/048a8e88-a34e-ed86-1298-7c580317d51e.png)

## サービスの起動
:::note info
OpenSSHサービスを起動する。
:::

・スタート画面で「サービス」で検索して、「サービス」を開く。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/c06ccb1a-c580-7914-2bd9-70b695501532.png)

・一覧の中から「OpenSSH SSH Server」を探し選択し、「サービスの開始」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/f43a9d3d-5750-ffc4-c6f9-ddd23aaf5824.png)
・＜任意＞右クリックしてプロパティを開いて、スタートアップの種類を「自動」にするとPC起動時に自動的にサービスが開始する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/72385d25-4947-e051-846c-2cf236a4b027.png)

## ＜動作確認＞
:::note info
もう一台のPCをクライアント側として使用してファイル転送を行う。
:::
・サーバーPCとクライアントPCをLANケーブルで接続する。

・サーバーPCで、スタートで「コマンド」で検索して「コマンドプロンプト」を開く。
・「ipconfig」を入力してエンターを押す。イーサネットのIPv4アドレスを確認する。

・クライアントPCで、コマンドプロンプトを開く。「sftp <ユーザー名>@<接続先>」のコマンドを入れる。
　（例）sftp test@192.168.100.100
・初回は「Are you sure you want to continue connecting?」と出てくるので「yes」を入力してエンター。
・パスワードを入力してエンター。（パスワードは入力しても表示されない）
・「sftp>」と表示されている状態になればOK。
・「dir」コマンドを打てば、SFTPサーバーのディレクトリ情報だ出てくる。
・「put」コマンドを打てば、ファイルを転送できる。
　（例）事前にtest.txtを作っておいて「put C:\test.txt」というコマンドを打つ。

 ## ＜OpenSSHを使ったSFTPサーバーの設定変更＞
 :::note info
各種のアルゴリズムに何を使うかなどの設定を変更できる。
:::
・C\ProgramData\ssh\sshd_configを編集することで、設定できる。
・例えば、暗号化に使用するアルゴリズムを変更する。下図の20行目を追加した。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/45a3231f-90bd-2306-ddb4-52448ee8aa46.png)
・WireSharkで「encryption:aes128-ctr」になっていることが確認できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765097/d43bd7da-134a-052b-a304-c2f543829875.png)