SSH_ORIGINAL_COMMAND 变量未设置

SSH_ORIGINAL_COMMAND 变量未设置

我正在使用两台服务器,它们都运行 FreeBSD 8.4-RELEASE-p1 和 OpenSSH_6.1p1。两台服务器的ssh_config文件位于/etc/ssh,是相同的。两台服务器都配置为允许用户使用 SSH 远程进入受限环境。

作为测试,我使用两台服务器上的 SSH 密钥登录到测试用户的监狱,使用以下命令:

ssh -i ~/.ssh/private_key [email protected] hello

并且authorized_keys两种情况下的文件都指定在身份验证后运行以下命令,并将其添加到公钥后面(两个服务器上的权限相同):

command="~/test.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty

其中test.sh仅执行以下操作:

#!/bin/sh

echo SSH_ORIGINAL_COMMAND = $SSH_ORIGINAL_COMMAND

在一台服务器上,上述脚本的输出sh显示以下内容:

SSH_ORIGINAL_COMMAND = hello

但在另一台服务器上,结果似乎没有存储在 SSH_ORIGINAL_COMMAND 中

SSH_ORIGINAL_COMMAND = 

对于每个用户监狱的相应服务器,行为都是相同的。我的问题是 - 对于SSH_ORIGINAL_COMMAND第二台服务器,我还需要什么其他配置才能允许在身份验证后设置变量?

答案1

查看 /etc/profile 和其他初始化脚本(~/.bashrc 等) - 这些是设置环境变量的一些内容。

请记住,如果您希望脚本所设置的环境设置能够“保留”,则需要用“。”代替脚本。

相关内容