使用authorized_keys带有 ssh 和包装脚本的强制命令,如下所示:
#!/usr/bin/env bash
case "$SSH_ORIGINAL_COMMAND" in
/var/lib/authorized-scripts/*)
$SSH_ORIGINAL_COMMAND
;;
*)
exit 1
;;
esac
恶意用户能否以某种方式链接另一个命令/usr/bin/authorized-scripts/,从而克服此安全措施,或者这是否安全?
这表明我可以简单地使用ssh user@host '/var/lib/authorized-scripts/script.sh && cat /etc/passwd',但这在我的测试中不起作用。
我能否以某种方式提高此脚本的安全性,同时仍然允许使用用户提供的参数为单个 ssh 密钥执行多个命令?
我知道允许的命令本身当然不应该允许任何类型的子shell(find例如,由于它的功能,例如是 nogo exec)。