Debian

無法創建 SFTP 使用者 Debian 7

  • July 14, 2017

我有一個 linode,我通過 ssh throw 終端訪問。我需要創建一個 sftp 使用者,他的預設目錄(也是他唯一可以訪問的)是/var/www/xxxxxx.com/public_html/directory

現在,我做到了,但是當我嘗試連接時,管道損壞或連接被對等方拒絕

我所做的是這樣的:

$ adduser --home /var/www/xxxxxx.com/public_html/directory/ username
$ chown username:username /var/www/xxxxxx.com/public_html/directory/
$ chmod 755 /var/www/xxxxxx.com/public_html/directory/
$ nano /etc/ssh/sshd_config

/etc/ssh/sshd_config我添加了以下幾行

Match User username
  ChrootDirectory /var/www/xxxxxx.com/public_html/directory/
  AllowTCPForwarding no
  X11Forwarding no
  ForceCommand internal-sftp

我究竟做錯了什麼?

編輯:這是實際的錯誤

在此處輸入圖像描述

EDIT2:這是filezilla中的錯誤

在此處輸入圖像描述

編輯 3:auth.log

Oct 15 17:47:11 (none) sshd[361]: fatal: bad ownership or modes for chroot directory "/var/www/xxxxxxxxxxxx.com/public_html/extras_html"

我解決了。問題是因為我這樣做了:

$ chown user:user /var/www/xxxxxx.com/public_html/directory/

我必須做的是:

$chown root:root /var/www/xxxxxx.com/public_html/directory/

然後,在“目錄”中,我為具有 777 權限的使用者創建了一個目錄(不是更好的方法,但它有效)。

“rejected by peer”錯誤是因為 /directory 必須有 755 權限。

這個問題被回答了很多次,但我現在找不到了。答案是 RTFM。

長話短說:從man sshd_config你可以得到這條線:

Chroot目錄

指定 chroot(2) 到身份驗證後的目錄的路徑名。 路徑名的所有組件必須是任何其他使用者或組不可寫的根目錄。 在 chroot 之後,sshd(8) 將工作目錄更改為使用者的主目錄。

它為您的錯誤消息提供了解釋。修復路徑上的 ACL 將解決您的問題。

引用自:https://unix.stackexchange.com/questions/236447