SSH:根据使用的公钥执行不同的 shell

SSH:根据使用的公钥执行不同的 shell

我想允许 ssh 访问特定帐户,但如果我使用特定公钥连接,我应该被放到完整的 shell 中,否则就被放到受限的 shell 中。

例子:

我使用 ssh 连接到[电子邮件保护]使用公钥 ABCDEF(在 authorized_keys 中正确设置)我得到一个 /bin/zsh shell

如果我连接到[电子邮件保护]使用密码或另一个公钥,我得到一个 /bin/rsh shell

我的想法是创建一个自定义的中间 shell(即:/bin/mysh),检查使用的密钥并从那里执行正确的 shell,但我不知道如何检查使用了哪个密钥(或者是否有可能)。

env 似乎不包含任何有用的东西。

关于如何做到这一点或其他可能的解决方案有什么想法吗?

谢谢。

答案1

使用要使用备用 shell 的密钥上的文件command中的选项。请参阅手册页,authorized_keyssshd(8)AUTHORIZED_KEYS 文件格式部分,了解详情。

相关内容