当通过 将用户限制为单个命令时ssh
,应该为用户使用什么默认 shell?这是如何通过 SSH 利用 shellshock的后续内容?我有一台运行 ssh 服务器并且有一个虚拟用户的机器。我通过command
在authorized_keys
文件中指定一个选项来限制这个虚拟用户通过 ssh 运行单个命令。我一直在使用bash
作为虚拟用户的默认 shell,但是自从 shellshock 错误以来,我一直在想也许有一个更安全的 shell。虚拟用户只允许运行一个rsync
命令,所以我认为它可以在大多数 shell 上运行。具体来说,允许用户运行的命令是:
rsync --server --sender -lHogDtpre.iLs . //home/dummyuser/data/"
Run Code Online (Sandbox Code Playgroud)
我不是服务器的管理员,尽管我可以要求进行一些简单的更改,因此/etc/sshd/sshd_config
无法在文件中设置诸如 chroot jail 之类的东西。理想情况下,我可以通过使用不受限制的密钥以虚拟用户身份登录来限制命令。
我试图了解可能存在的安全问题CVE-2014-6271
,我看到的所有链接都只提供了以下命令。
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
Run Code Online (Sandbox Code Playgroud)
如果我得到的输出为
vulnerable
this is a test
Run Code Online (Sandbox Code Playgroud)
这意味着我的 bash shell 很脆弱。
但它与安全有什么关系呢?换句话说,会对我的系统造成什么损害?