在 AuthorizedKeys 中使用 SSH_ORIGINAL_COMMAND 非常有用,我想知道如何在 AuthorizedKeysCommand 上下文中访问它(通过 env?)。这可能吗?有人可以给我一些建议吗?
如果可能的话,我将使用此 SSH_ORIGINAL_COMMAND 将客户端特定信息发送到 AuthorizedKeysCommand 脚本。目前,唯一的替代方案是使用登录本身(我们有大约 30k+ 个不同的“主机”可能想要连接到我们的服务器)来识别客户端,但这需要自定义 nss 端点配置(我们使用 libnss-pgsql2 )来支持动态用户查找,以及更多工作(管理 uid 等)
使用“一个”标准用户文件就足够了(并且简单得多),因为这些主机不需要做任何事情,只需设置恢复端口转发规则,并且绑定到非常有限的 shell。
我的(现在无用的)/home/host_controler/.ssh/authorized_keys 文件(在 cron 运行中构建)是这样的: command="limited_shell.sh --host_id=XXX1 $SSH_ORIGINAL_COMMAND" ssh-rsa pubkey of host 1" command="limited_shell.sh --host_id=XXX2 $SSH_ORIGINAL_COMMAND" ssh-rsa pubkey of host 2" command="limited_shell.sh --host_id=XXX3 $SSH_ORIGINAL_COMMAND" ssh-rsa pubkey of host 3" ...
非常感谢您的帮助 !
答案1
您需要将大小写切换放入 limited_shell.sh 中或编写另一个包装器。可能可以将特定配置需求放入中央 ssh_config 中,但我从未这样做过,因此无法提供进一步帮助。