Ssh

SFTP 身份驗證失敗

  • April 1, 2019

我正在嘗試為我們的客戶設置 sftp 訪問以下載或上傳文件。在嘗試設置目錄權限和使用者訪問權限時,我不斷收到此類錯誤。

server1 sshd[21760]: Accepted password for user01 from 192.168.1.118 port 51026 ssh2
server1 sshd[21760]: pam_unix(sshd:session): session opened for user user01 by (uid=0)
server1 sshd[21775]: fatal: bad ownership or modes for chroot directory "/home/user01"
server1 sshd[21760]: pam_unix(sshd:session): session closed for user user01

我在 sshd_config 文件中有以下設置:

Match Group sftp_users
ChrootDirectory %h
ForceCommand internal-sftp

文件夾/文件權限顯示如下:

drwxr-xr-x 4 user01 sftp_users 4096 Mar 28 09:26 /home/user01

我有一個這樣的安裝驅動器:

//windowserver/ftproot/customers/user01 on /home/user01 type cifs (rw)

我無法理解/確定的是使用者“user01”是否具有對其在本地電腦上自己的主目錄的讀/寫訪問權限,但是在使用 ssh/sftp 時會返回“錯誤所有權/模式”的錯誤。是因為 user01 的會話是由 uid=0 打開的嗎?在這種情況下,user01 的 uid 是 502,而 root 的 uid 是 0。

如果需要我在此處提供的其他資訊,請告訴我,我會發布該資訊。

從其他人的幫助/建議中,我了解到,如果您將一個子文件夾添加到使用者的主目錄並將該子文件夾設置為由使用者 chown’d ,那麼一切都會按預期工作。總結一下:

/home/user01 should be chown'd by root.
/home/user01/shared should be chown'd by user01

然後,當 user01 登錄時,他們只能看到名為 shared 的文件夾,但無法導航到 shared 上面的父文件夾。並且由於 user01 登錄擁有所有權 user01 可以從/向該目錄讀取和寫入文件。

Chroot 目錄應該是目標的父目錄,所以在這種情況下是 /home

ChrootDirectory /home

引用自:https://serverfault.com/questions/960476