Ssh
sftp 客戶端連接上的伺服器端 cd
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
.