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

Mas*_*meo 2 linux unix ssh

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

例子:

我使用公钥 ABCDEF(在authorized_keys 中正确设置)将 ssh 连接到 user@myhost.com,然后我得到一个 /bin/zsh shell

如果我使用密码或其他公钥连接到 user@myhost.com,我会得到一个 /bin/rsh shell

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

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

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

谢谢。

Ign*_*ams 5

使用要使用备用 shell 的密钥上commandauthorized_keys文件中的选项。有关详细信息sshd(8),请参阅手册页AUTHORIZED_KEYS FILE FORMAT部分。