安全地限制基于密钥的身份验证仅用于 sftp 访问

安全地限制基于密钥的身份验证仅用于 sftp 访问

~/.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 证书,并为仅 sf​​tp 用户的证书中的命令锁定,以及没有该锁定的第二个证书。

相关内容