OpenSSH internal-sftp 不接受 allowed/denied_requests
嘗試使用 OpenSSH_7.4p1 設置高度受限的 SFTP 伺服器,以便遠端腳本上傳數據。目標是一個黑洞,腳本可以使用使用者級別的鍵執行“放置”,而其他伺服器命令是不可能的。一切正常,直到最後一步我嘗試限制
sftp
命令集使用-P
和-p
此sshd_config
Match
子句中的選項:Match user globalstat ChrootDirectory /inbound ForceCommand internal-sftp -d data -p put -P df,pwd,rm,mkdir,rmdir,get,rename,symlink
-P
嘗試了多種組合,但denied_requests
永遠不會阻止任何指定的遠端命令。應用或中斷傳輸並返回allowed_requests
" Couldn’t canonicalise: Permission denied Need cwd"。沒有or ,寫入沒有問題,並且根據其他有關此錯誤的文章,我很確定我的目錄權限是正確的。我一直在使用此手冊頁作為參考:https ://www.man7.org/linux/man-pages/man8/sftp-server.8.html-p put``put,cd``-P``-p
這意味著not 是這些選項的位置,但它們在的主體中不起作用,並且如果在子句中使用sshd而
Subsystem
不是.ForceCommand``sshd_config``Subsystem``Match``ForceCommand
我真的希望有可能得到這個工作,任何建議將不勝感激。
-p
/的參數-P
是低級SFTP 協議請求的名稱。不是高級 OpenSSHsftp
客戶端命令。這些是名稱:
open
,close
,read
,write
,lstat
,fstat
,setstat
,fsetstat
,opendir
,readdir
,remove
,mkdir
,rmdir
,realpath
,stat
,rename
,readlink
,symlink
,posix-rename
,statvfs
,fstatvfs
,hardlink
,fsync
,lsetstat
.
sftp-server -Q requests
正如sftp-server
手冊頁所說,您可以通過執行獲得最新列表。
鑑於已經回答了這個問題,我將只提一個最初導致我來到這裡的問題:
儘管
internal-sftp ...
表達式看起來像一個普通的命令,但雙引號似乎並沒有像往常一樣被處理。這不適用於mkdir
andsymlink
:ForceCommand internal-sftp -l INFO -P "mkdir,rmdir,ln,symlink"
這會:
ForceCommand internal-sftp -l INFO -P mkdir,rmdir,ln,symlink