Zenn
🐽

【Windows/FTP&SFTP接続】初心者がWindows11からWindows2022へFTP&SFTP接続した備忘録

2025/03/20に公開

どうも!前歯すきっ歯です🦷

Linuxサーバ⇒LinuxサーバのFTP接続やSFTP接続の記事は沢山ありますが、
Windows11⇒Windows Server2022へのFTP接続やSFTP接続の記事が少なかったので
備忘録も兼ねて自分の学習記録を残しておきます!!!

1.本記事について

1.1💪勉強のゴール💪

今回のゴールは以下4点です。

1.2 前提条件

各PCやサーバの配置は以下構成図の通りです。また、ルーティングやセキュリティグループ等クラウド上の必要な設定は行われているものとします。WindowsServer2022内のFTP/SFTPサーバ内でDドライブは作成済みです。

2.知識収集

今回の勉強にあたり、調べた時に個人的に分かりやすかったリンク8つをご紹介します。

2.1 FTP接続の手順

この記事に倣って進めていけばFTP接続ができます!

2.2 WinSCPのインストール方法

2.1の記事の中ではWinSCPというアプリを使ってFTP接続を行います。この記事はWinSCPのセットアップ方法を書いてくれている記事です。

2.3 IISのバインドとは

FTPサーバ設定中に出てくる[バインド]という用語の解説記事です。

2.4 匿名認証とは

FTPサーバ接続にあたり出てくる[匿名接続]について記載があります。

2.5SFTP接続の手順

この記事はパスワード認証をしているので、自分の記事では公開鍵認証に置き換えて実施します。
8割くらいはこの記事をなぞり進めていきます。

2.6 サーバへの公開鍵の登録方法

サーバへの公開鍵の登録方法がOS別に表になっていて分かりやすかったです!
本記事以外の時にもぜひ手元に置きたいリンクです。

2.7 SCPコマンドの使い方

SCPコマンドのオプションや詳細な使い方を知りたい場合はこの記事からどうぞ。

2.8 SFTPコマンドの使い方

SFTPコマンドのオプションや接続後のコマンドが一覧となって見られます。

3.FTPサーバの構築手順

大船に乗った気分で[2.1 FTP接続の手順]の記事に倣って進めていけば大丈夫です!

接続時に以下リンク内冒頭のエラーが出て対処したので、
皆さんも接続時にエラーが出た場合はご覧ください!
https://qiita.com/Chang_Yu-sheng/items/d904a7d9f5a42f8b2a0f

4.SFTPサーバの構築手順

4.1 ユーザー/ディレクトリ作成~OpemSSHインストール

まずは[2.5SFTP接続の手順]で紹介した記事内の[1.ユーザの作成]~[3.OpenSSHのインストール]までの手順を実施します。

4.2 sshd_configの変更

4.2.1 sshd_configの位置

sshd_configはC:\ProgramData\ssh\sshd_configにあります。
エクスプローラーに上記パスを打ち込めば辿りつけますが、GUIでファイルにアクセスする場合は隠しファイルとなっているので、以下画像にしたがってファイルのパスを辿ってください。

エクスプローラの表示から[隠しファイル]を選択

ProgramDataの隠しファイルが出現

上記パスを辿る

4.2.2 sshd_configの変更内容

[1.1勉強のゴール]でお伝えした内容を達成するためにsshd_configのを以下のように変更し、OpenSSHを[サービス]から再起動してください。

sshd_comfigの変更点
(中略)
### rootユーザーでのログインを拒否 ###
#PermitRootLogin prohibit-password
PermitRootLogin no 
(中略)
### 公開鍵認証を許可 ###
PubkeyAuthentication yes
(中略)
### Administraotrsのauthorized_keysの指定を無効化 ###
#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
(中略)
### 以下は追加箇所 ###
### Administratorsグループの接続拒否 ###
DenyGroups administrators

### sftpgroupグループの接続有効化 ###
#AllowGroups SFTPGroup

### sftpuserのauthorized_keysとchrootの先の設定 ###
Match User SFTPUser
	AuthorizedKeysFile C:\Users\SFTPUser\.ssh\authorized_keys 
	ChrootDirectory D:\\SFTPRoot\SFTPSite ### sftpuserのchroot設定 ###

4.2.3 OpenSSHが起動しない原因

  • chroot指定のパスでディスクの次の\が1個しかない
    次のリンク内に記載があるようにChrootDirectoryの値としてディスク後の\を2個入れる必要があるようです。ただし、自分で試したところ後述するauthorized_keysのパス等他の部分では上記の必要はないようです。詳細は以下をご覧ください。

https://jpwinsup.github.io/blog/2024/11/12/OpenSSH/OpenSSH_update_oct_2024/

4.3 SSH鍵の作成

ここでは接続元Windows11のコマンドプロンプトでキーペアを作成して、SCPコマンドでSFTPサーバーに送ります。ここではSSHキーを作成します。

SSH鍵作成コマンド(オプション指定なし) ※コマンドプロンプトで実行
>ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\[ユーザー名]/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\[ユーザー名]/.ssh/id_ed25519
Your public key has been saved in C:\Users\[ユーザー名]/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:********************************************@[PCの名前]
The key's randomart image is:
+--[ED25519 256]--+
|     ++O= ..   . |
|    + O.o+. . + o|
|   . B o..   = +o|
|    + oo    + B +|
|   . o  S  o O B+|
|    .       o O E|
|           o o . |
|          o .    |
|           .     |
+----[SHA256]-----+

4.4 authorized_keysの作成

Winodows11からSCPで公開鍵をWindowsServer2022へ転送します。
転送と同時にauthorized_keysを作成できるようにファイル名を記述します。
※SCPの詳細な仕様は2.7 SCPコマンドの使い方参照

SCPコマンドを使ったSSH鍵の転送 
>scp C:\Users\[ユーザー名]\.ssh\id_ed25519.pub SFTPUser@[SFTPサーバのIPアドレス]:/Users/SFTPUser/.ssh/authorized_keys
The authenticity of host '[SFTPサーバのIPアドレス] ([SFTPサーバのIPアドレス])' can't be established.
ED25519 key fingerprint is SHA256:*******************************************
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Warning: Permanently added '[SFTPサーバのIPアドレス]' (ED25519) to the list of known hosts.
SFTPUser@[SFTPサーバのIPアドレス]'s password:
id_ed25519.pub                                                                        100%  104     2.1KB/s   00:00

4.5 SFTPUserでのファイル転送

SSH鍵の準備ができたので、Winodws11のコマンドプロンプトからSFTP接続を使ってファイル転送を行います。
※SFTPの詳細な仕様は2.8 SFTPコマンドの使い方参照
参照

SFTP接続とファイル転送
>sftp -i C:\Users\[ユーザー名]/.ssh/id_ed25519.pub SFTPUser@[SFTPサーバのIPアドレス]
Connected to [SFTPサーバのIPアドレス].
sftp>
sftp> put C:\[テスト用ファイルのパス]\SFTP-Test.txt
Uploading C:/[テスト用ファイルのパス]/SFTP-Test.txt to /SFTP-Test.txt
SFTP-Test.txt                                                                         100%    0     0.0KB/s   00:00

Discussion

ログインするとコメントできます