~/.ssh/authorized_keys
我可以通过强制进程内 SFTP 服务器来限制安装的密钥仅允许文件传输:
command="internal-sftp" ssh-rsa AAAAB3NzaC1...(the key follows)
但是,使用 sftp 连接可以将新版本传输authorized_keys
到服务器,删除限制、添加新密钥等。之后就可以进行交互连接了。
由于这种可能性,文件传输非常危险。有什么方法可以防止这种情况,例如,~/.ssh/
在使用时禁止访问其中的任何内容internal-sftp
?
答案1
不确定是否有其他方法可以解决这个问题。至少我还没有在我用来测试它的 LXC 容器中找到它。
作为根用户
chattr +i .ssh/authorized_keys
那么用户就不能修改该文件了。
另一种可能的方法是更改authorized_keys的位置,甚至让它使用脚本查找它们。那么用户就永远无法修改密钥。
甚至第三个选项是使用 ssh 证书,并为仅 sftp 用户的证书中的命令锁定,以及没有该锁定的第二个证书。