我想在Linux机器上运行一个应用程序,这个应用程序将被大多数用户使用PuTTY访问。 我想要启动该应用程序,完成后,我想让它结束SSH会话。 使用chsh将shell设置为应用程序是否安全/足够? 我需要做其他任何事情(chroot监狱)? 这将在Ubuntu Lucid上实现。
接驳ErikA的build议。 您不需要使用键来使用强制命令。
你也可以在你的sshd_config中指定这样的东西。
Match User xxxx ForceCommand /usr/bin/nnnn Match Group yyyy ForceCommand /usr/bin/nnnn
最重要的一点是您需要检查的是查看您强制的应用程序是否允许用户真正启动另一个shell或进程。
我会考虑使用公钥validation和其中的“强制命令”function。 在每个用户的~/.ssh/authorized_keys文件中,执行如下操作:
command="/path/to/application" ssh-rsa <rest_of_users_public_key>
如果你设置了这个选项,closures密码authentication(反正是一个非常好的做法),它将确保用户只能执行指定的应用程序。 如果你确信用户没有办法通过这个应用程序执行shell命令,那么chroot jail可能不是必需的,但是这确实需要留给你去确定。