Ssh
sftp 伺服器 chroot 初始目錄
我已經用 chroot 配置了一個 sftp 伺服器,它工作正常,唯一困擾我的是初始登陸目錄,因為 sftp 使用者在登陸文件夾中沒有寫權限,他必須去一個以他自己命名的文件夾上傳文件的使用者名。
我設置了:ForceCommand internal-sftp -d %u,我在一些配置指南中找到的,他們說它應該改變登陸文件夾,但它不起作用。一開始我在 passwd 上為使用者登錄配置了一個空腳本,但我將其更改為 /bin/bash 以防它可能與此有關。我重新啟動了服務,所以也可能不是這個原因。
也許這可能與我正在使用的發行版所具有的 ssh 版本有關,或者 sshd 根本無法做到這一點?
這是我對 sshd 的配置:
CentOS 6.6 版(最終版)
OpenSSH_5.3p1,OpenSSL 1.0.1e-fips 201 年 2 月 11 日
Subsystem sftp internal-sftp Match group sftponly ChrootDirectory %h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp -d %u
您可以使用
-d
sftp 選項來為您更改起始目錄。參見sftp-server(8)
手冊頁:-d 開始目錄
為使用者指定一個備用起始目錄。路徑名可能包含以下在執行時擴展的標記:
%%
替換為文字“%”,%h
替換為正在驗證的使用者的主目錄,並%u
替換為該使用者的使用者名。預設是使用使用者的主目錄。此選項與 sshd_config(5) 選項結合使用時很有用ChrootDirectory
。您可以通過將此作為參數來執行此操作
internal-sftp
,例如:Subsystem sftp internal-sftp -d "%h/sftp_home/"
此外,如果您使用以下命令,您可能需要調整您的 force-command:
ForceCommand internal-sftp -d "%h/sftp_home/"
從 6.2 版開始,這應該在 openssh 上可用