.png)
マウントされたハードドライブに 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 によって所有されている必要があります。