Ssh

如何僅為 sftp 創建使用者?

  • June 25, 2019

我已經通過該adduser工具向系統添加了一個使用者。然後,在 中/etc/passwd,我嘗試將/bin/bashto/sbin/nologin或 to更改為/dev/null,但這些都不起作用。

我希望使用者沒有選擇獲取互動式 shell 的選項,而只能使用sftp. 有辦法嗎?

我知道以前在這裡被問過,但似乎沒有人給出令人滿意的答复。

您應該用來更改 shell 的命令是 chsh。nologin shell 可以是/sbin/nologinor /usr/sbin/nologin(通過查看來檢查您擁有的/etc/shells),但/bin/false可能是更好的選擇。

chsh -s /bin/false user

您應該考慮設置類似scponly的東西,它會完全按照您的意願行事。

您還應該能夠使用 OpenSSH 4.9 及更高版本來執行此操作,您還可以使用它另外對使用者進行 chroot 以提高安全性。

在你的/etc/ssh/sshd_config

Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no

然後執行:

chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads

使用者將只能寫入 /home/user/uploads。

https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory

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