ssh SendEnv从Windows到Linux服务器使用cygwin

我正在从Windows cygwin ssh到Open SU​​SE Linux服务器。 我想通过ssh命令发送一个本地环境variables,这样我就可以在login后立即加载一些特定的.bashrc文件。下面是我试过的。

Windows机器有这个envvariables

IDENTITY=samiron echo %IDENTITY% samiron 

在Linux机器上我有

 vim /etc/ssh/sshd_config AcceptEnv IDENTITY 

/home/user/.bashrc我写了类似的东西

 export ME=$IDENTITY 

我的计划是有一个像.bashrc.samiron文件,并从.bashrc文件source ~/.bashrc.$ME

不过,我正在做如下ssh,期待variables$ME包含"samiron"

 ssh -o SendEnv=IDENTITY [email protected] 

但是在logging之后

 user@server:~> echo $ME 

它什么也没有显示 任何人都可以build议我在这里做错了吗?

这两个条件应该能够按照预期的方式工作:

  1. 您的ssh服务器必须被configuration为接受来自本地客户端环境的variables转发。 因为允许这样的行为可能是安全风险,所以通常默认情况下是禁用的。 您可以通过在您的ssh服务器configuration中指定“AcceptEnv”指令来启用它。 所以把这样的东西放在/ etc / ssh / sshd_config文件中,并重新加载 ssh服务器服务(variables名可以包含通配符,可以指定多个由空格分隔的variables, man sshd_config中的详细信息)

    AcceptEnv VARIABLE_NAME

  2. 此function仅适用于版本2的 ssh协议。 如果没有改变( “协议”指令),它几乎可以在所有现代Linux发行版中实现。

哦,我错过了重新启动sshd服务器的一部分。

 sudo /etc/init.d/sshd restart 

解决了我的问题