作为非特权用户,如何配置 sshd 以仅允许在使用密码进行身份验证时执行指定的命令?

作为非特权用户,如何配置 sshd 以仅允许在使用密码进行身份验证时执行指定的命令?

我通常使用公钥登录 SSH 服务器(我是非特权用户)。当我将服务器用作git 附件 存储库。

我想要做的是,git-annex当使用密码对 sshd 进行身份验证时,仅允许执行 -相关命令。 git-annex附带一个与git-shellfor对应的包装器git。我知道我可以authorized_keys在其他情况下使用它来执行此操作,但在这个特定情况下不行。

我该怎么做?服务器是 Debian wheezy,带有 OpenSSH_6.0p1 Debian-4+deb7u3。

答案1

~/.ssh/authorized_keys将其放在每个你想要专门用于 git-annex 的ssh-key 前面(替换我的附件仓库目录路径:GIT_ANNEX_SHELL具有适当的值):

command="GIT_ANNEX_SHELL_DIRECTORY=_MY_ANNEX_REPO_DIR_ _PATH_TO_GIT_ANNEX_SHELL_/git-annex-shell -c $SSH_ORIGINAL_COMMAND",no-port-forwarding,no-x11-forwarding,no-agent-forwarding

我目前正在尝试使用 git-annex 替代 Dropbox。上面的设置对我来说已经工作了一个星期。如果我发现任何问题,我会更新这篇文章。

答案2

非特权用户无法配置 sshd。您可能能够将 authorized_keys 条目限制为一个命令。但不能使用密码登录。您需要 root 的帮助才能更改您的登录 shell 或类似的东西。如果她创建了受限 shell 或 chrooted jail,那么这种自定义是可能的。

相关内容