Ssh

sftp 客戶端連接上的伺服器端 cd

  • October 16, 2014

sftp 有沒有辦法在客戶端連接時配置伺服器端以執行 cd 命令?

我讓我的使用者進入 chroot,該文件夾必須是 root:root chowned 並且不能被任何其他使用者寫入,chroot 中有 sftp 使用者擁有的子文件夾。

我想做的是在連接時從監獄中的伺服器端將使用者cd 到他們的文件夾中,以避免每次連接時都必須這樣做的煩惱。這可能嗎?

OpenSSH 使用一個程序sftp-server來處理 SFTP 會話的伺服器端。Sftp-server 採用一個選項-d來指定使用者的起始目錄,以替代他們的主目錄。請參閱sftp-server 手冊頁

如果您使用的是典型的SFTP chroot jail setup,您的 sshd_config 中可能有一行:

ForceCommand internal-sftp

這會導致sshd執行 sshd 程序中內置的 sftp-server 程式碼的副本。您可以將命令行參數添加到該行,就像獨立的 sftp-server 程序一樣。因此,例如:

Match User jdoe
   ChrootDirectory /var/jdoe-root
   ForceCommand internal-sftp -d /jdoe-homedir

當“jdoe”登錄時,他將被 chroot 到/var/jdoe-root,他的會話起始目錄將是/var/jdoe-root/jdoe-homedir.

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