我正在使用两台服务器,它们都运行 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 等) - 这些是设置环境变量的一些内容。
请记住,如果您希望脚本所设置的环境设置能够“保留”,则需要用“。”代替脚本。