
有一些類似的問題,但不一樣。我不想更改預設資料夾。所以我想為 ssh 連接設定根資料夾。我的意思是客戶端有權存取的唯一資料夾是我設定的。我想設定一個路徑,我的客戶端只能存取它而不能使用cd ..
.
他們無法進入上層資料夾,因為他們沒有存取權限和權限。
編輯:我想做的最重要的事情是擁有一個本地伺服器,並在其上寫入一些其他設備,但不是所有文件都可以存取。如果有比 ssh 更好的方法,請原諒我的問題。
謝謝
答案1
您需要ChrootDirectory
在 sshd 配置中為所述使用者、某個群組或所有使用者進行設置,但這很糟糕。
例如,您建立一個新文件,/etc/ssh/sshd_config.d/chroot_some_users.conf
並輸入以下內容:
Match User myuser
ChrootDirectory %h
如果您想為多個使用者使用此功能,請使用Match Group groupname
並將所有需要的使用者新增至該群組。
在現代 Linux 發行版中,Include /etc/ssh/sshd_config.d/*.conf
有/etc/ssh/sshd_config
.在較舊的發行版中,您可能需要自行新增此行;只需將其附加在末尾即可。當您完成所有操作後,請使用 檢查sshd -t
,如果它沒有報告任何錯誤,則可以安全地使用 重新載入設定systemctl reload sshd.service
。
使用者myuser
最終將透過 SSH 將其主目錄視為檔案系統根目錄。請注意,他們將無法透過 SSH 登錄,因為此 chroot 將阻止他們查看 shell 二進位檔案和所需的庫,除非您使它們在其主目錄中可用。但他們仍然能夠使用 SFTP 傳輸檔案和轉發 TCP 連接埠。
閱讀man sshd_config
(完整地!)並man sshd
了解許多重要且有用的細節。