![如何将密钥仅授权给 sftp,并且仅授权给子目录?](https://linux22.com/image/1626570/%E5%A6%82%E4%BD%95%E5%B0%86%E5%AF%86%E9%92%A5%E4%BB%85%E6%8E%88%E6%9D%83%E7%BB%99%20sftp%EF%BC%8C%E5%B9%B6%E4%B8%94%E4%BB%85%E6%8E%88%E6%9D%83%E7%BB%99%E5%AD%90%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
我需要允许sftp
仅访问计算机上的帐户,其中我没有root,以便远程用户只能将put
文件上传()到子目录,而不能执行其他任何操作。
没有 root 访问权限使我无法关注大量现有的示例/教程,因为它们都谈论修改sshd_config
。
command
我的计划是这样设置授权密钥的: command="internal-sftp -d %d/dump -pls,put"
。这个想法是,sftp 服务将在 中启动~/dump/
,并且只允许ls
和put
,即使用户想要退出,他也无法退出。
不幸的是,如果我给command
任何参数,身份验证成功后,sftp 连接立即断开。客户端没有错误,而且,如果没有 root,我无法查看服务器日志。
即使我删除-p
标志,它仍然会立即断开连接...只有基本系统"internal-sftp"
可以工作,但遥控器可以看到 - 并覆盖 -任何事物,包括其~/.ssh/authorized_keys
本身。
authorized_keys
是否可以在不改变全局设置的情况下可靠地将仅 sftp 密钥添加到自己的密钥中?
(是的,可能是这样,用户可以通过put
使用明确的路径来“逃脱”,但我甚至无法测试它......)