Centos 7 で SFTP を設定しようとしましたが、最初のサーバーでは問題なく動作しますが、2 番目のサーバーで接続しようとすると次のエラーが発生します。
sftp USERNAME@serveripaddress
このエラーがあります:
Could not read packet: Connection reset by peer
私はこの方法を使います:
adduser USERNAME
passwd USERNAME
groupadd sftp_only
usermod -aG sftp_only USERNAME
SSH chroot を設定します:
vi /etc/ssh/sshd_config
コメントを追加:
#Subsystem Sftp /usr/libexec/openssh/sftp-server
次の行を追加します:
Subsystem sftp internal-sftp
ファイルの最後に以下を追加します:
Group sftp_only Match
ChrootDirectory /var/www
ForceCommand internal-sftp
X11Forwarding No
AllowTcpForwarding No
SSHを再起動します:
service sshd restart
2 台のサーバーに同じ iptables ルールがあり、iptables を無効にして試しています。
VSFTPD のような FTP サーバーをインストールする必要があるのでしょうか?
数時間前から完全にブロックされているため、助けていただきありがとうございます。
答え1
SFTP フロントエンドを提供する proftpd を使用できます。この方法では、SFTP、FTP、FTP/S を 1 つのデーモンに統合できます。ただし、SFTP にポート 22 を使用することはできません。また、proftpd と sshd は SFTP に同じポートをバインドできないため、そのポートでの SSH をあきらめる必要があります。
答え2
ログを /var/log/auth.log に記録する
May 10 17:08:32 machine sshd[31902]: fatal: bad ownership or modes for chroot directory component "/var/www/html/nextcloud/"
それが私の問題でした
これをフォローした後chroot ディレクトリ コンポーネントの所有権またはモードが不正です
ところで、私は結局バインドソリューションを使うことにしたヘルプが必要です - sftp ユーザーへのアクセスを他のユーザーのホーム -> サブフォルダーに制限します
答え3
ファイル内PasswordAuthentication no
の に変更し、コマンドで再起動します。PasswordAuthentication yes
/etc/ssh/sshd_config
service sshd restart
答え4
ホーム フォルダがルートによって所有され、デフォルト フォルダが sftp ユーザによって所有されていることを確認します。たとえば、incoming をユーザ 'guestuser' のホーム ディレクトリにする場合は、ユーザ /guestuser/incoming でフォルダを作成する必要があります。guestuser フォルダはルートによって所有され、incoming は guestuser によって所有される必要があります。