マウントされた HDD に SFTP サーバーをセットアップするのに苦労しています (client_loop: 切断を送信: 接続をリセット)

マウントされた HDD に SFTP サーバーをセットアップするのに苦労しています (client_loop: 切断を送信: 接続をリセット)

マウントされたハードドライブに SFTP サーバーをセットアップしようとし、一連のチュートリアルの指示に従ったのですが、ログイン時に常に「client_loop: send disconnect: Connection reset」というメッセージが表示されます。

まず、sftp というグループを作成し、HDD 内のホーム ディレクトリを使用してそのグループにユーザーを割り当てました。

sudo useradd -g sftp -d /media/linux/MyHDD/NAS/USERNAME -s /sbin/nologin USERNAME-nas

sudo passwd USERNAME

USERNAMEは私の個人ユーザー名です

次に、USERNAME フォルダより上のすべての所有権をルートに設定し、USERNAME フォルダをユーザーに設定しようとしました。

sudo chown -R root:root /media

sudo chown -R USERNAME:sftp /media/linux/MyHDD/NAS/USERNAME

sshd_config ファイルを編集して以下を含めました:

Subsystem sftp internal-sftp

Match Group sftp
ChrootDirectory /media/linux/MyHDD/NAS/USERNAME
ForceCommand internal-sftp
AllowTcpForwarding no
X11 Forwarding no

sshdサービスの再起動を忘れずに

sudo systemctl restart sshd

Linuxコンピュータでこのフォルダにアクセスしたかったので、メディアフォルダの権限を777に設定しました。

sudo chmod -R 777 /media

これをすべて実行した後、sftp にログインしてパスワードを入力しようとすると、次のようなメッセージが表示されます。

sftp -P PORTNO USERNAME@IP

client_loop: send disconnect: Connection reset
Connection closed

これは権限の問題なのか、所有権の問題なのかはわかりません。私はこれに長い時間を費やしましたが、解決できないようですので、どんな助けでもいただければ幸いです。

答え1

ChrootDirectory /media/linux/MyHDD/NAS/USERNAME
[...]
sudo chown -R USERNAME:sftp /media/linux/MyHDD/NAS/USERNAME
[...]
sudo chmod -R 777 /media

「ChrootDirectory」機能を使用するには、chrootディレクトリとその親ディレクトリに特定の所有権と権限:

Chrootディレクトリ
認証後にchroot(2)するディレクトリのパス名を指定します。セッション開始時にsshd(8)は次のことをチェックします。パス名のすべてのコンポーネントはルート所有のディレクトリであり、他のユーザーまたはグループが書き込みすることはできません。chroot 後、sshd(8) は作業ディレクトリをユーザーのホームディレクトリに変更します。ChrootDirectory への引数は、TOKENS セクションで説明されているトークンを受け入れます。

chroot ディレクトリを設定する方法には 2 つの問題があります。

まず、、、/mediaおよび/media/linux/MyHDD/NAS/USERNAMEその間のすべてのディレクトリは、世界またはグループが書き込み可能にすることはできません。これらのディレクトリは、モード 777 ではなく 755 にする必要があります。

2 番目に、/media/linux/MyHDD/NAS/USERNAMEディレクトリ自体が root によって所有されている必要があります。ディレクトリ内のディレクトリとファイルはユーザーが所有できますが、USERNAMEディレクトリ自体は root によって所有されている必要があります。

関連情報