我想允许 ssh 访问特定帐户,但如果我使用特定公钥连接,我应该被放到完整的 shell 中,否则就被放到受限的 shell 中。
例子:
我使用 ssh 连接到[电子邮件保护]使用公钥 ABCDEF(在 authorized_keys 中正确设置)我得到一个 /bin/zsh shell
如果我连接到[电子邮件保护]使用密码或另一个公钥,我得到一个 /bin/rsh shell
我的想法是创建一个自定义的中间 shell(即:/bin/mysh),检查使用的密钥并从那里执行正确的 shell,但我不知道如何检查使用了哪个密钥(或者是否有可能)。
env 似乎不包含任何有用的东西。
关于如何做到这一点或其他可能的解决方案有什么想法吗?
谢谢。
答案1
使用要使用备用 shell 的密钥上的文件command
中的选项。请参阅手册页,authorized_keys
sshd(8)
AUTHORIZED_KEYS 文件格式部分,了解详情。