![SSH:根据使用的公钥执行不同的 shell](https://linux22.com/image/527147/SSH%EF%BC%9A%E6%A0%B9%E6%8D%AE%E4%BD%BF%E7%94%A8%E7%9A%84%E5%85%AC%E9%92%A5%E6%89%A7%E8%A1%8C%E4%B8%8D%E5%90%8C%E7%9A%84%20shell.png)
我想允许 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 文件格式部分,了解详情。