如何从〜/ .ssh / config禁用ssh_config中设置的SendEnv变量


30

我在任何地方都找不到,所以我想知道我是唯一遇到这种问题的人。

缺省情况下,Red Hat和Debian上的ssh至少具有ssh_config,其中的SendEnv选项在远程会话中传递LC *和LANG变量。如果不是root来更改/ etc / ssh / ssh_config,那么他如何禁用该行为?SendEnv选项似乎正在累积,我看不到任何方法来重置它。

为了避免被询问,我需要避免将语言环境传递给测试计算机,以免对依赖于语言环境作为计算机默认值的脚本和程序产生副作用。


这不是您问题的答案,但是您可以通过env使用包装程序脚本或使用包装程序脚本来调用测试计算机上的脚本和程序来解决问题吗?
Scott

2
是的,可能的解决方法是不便的
akostadinov 2012年

Answers:



5

无法完成此操作,~/.ssh/config因为SendEnv无法覆盖它。

使用别名不适用于调用ssh的脚本。

一种替代方法是导出功能。例如~/.bashrc

function ssh() {
    LANG="en_US.UTF-8" \
    LC_ADDRESS="$LANG" \
    LC_IDENTIFICATION="$LANG" \
    LC_MEASUREMENT="$LANG" \
    LC_MONETARY="$LANG" \
    LC_NAME="$LANG" \
    LC_NUMERIC="$LANG" \
    LC_PAPER="$LANG" \
    LC_TELEPHONE="$LANG" \
    LC_TIME="$LANG" \
    LC_ALL="$LANG" \
    /usr/bin/ssh $@
}
export -f ssh

1

SetEnv一个选项,可以LANG在发送前强制为某个特定值。

另外手册页说

可以通过在模式之前添加前缀来清除先前设置的SendEnv变量名-

但是我没有设法做到这一点。


参见bugzilla.mindrot.org/show_bug.cgi?id=1285,这也许可以解释为什么这种-方法行不通。最好还是在ssh config中对远程LANG和其他var进行硬编码。使事情更可预测。也许SetEnv是更新的指令,因为没有其他人对此提出建议。SetEnv LANG=en_US.UTF-8
akostadinov

0

如果使用的是bash,则可以设置别名ssh ='LANG = command ssh'来禁止将LANG传递给其他服务器。


0

su - youruser通过ssh登录时可以使用。这将为用户重新初始化环境。

实际上,您使用新环境初始化了一个新会话。


问题是要使环境自动健全。而且btw su并非始终安装。并且您必须使用su输入密码。没用。有更简单的解决方法。
akostadinov

0

根据man ssh

 -F configfile
         Specifies an alternative per-user configuration file.  If a con-
         figuration file is given on the command line, the system-wide
         configuration file (/etc/ssh/ssh_config) will be ignored.  The
         default for the per-user configuration file is ~/.ssh/config.

因此,可以通过在命令行上显式指定(默认)配置文件来执行ssh 而不/etc/ssh/ssh_config遵循(~/.ssh/config可以将其设置为空):

$ touch ~/.ssh/config
$ ssh -F ~/.ssh/config your_user@your_host

您可以在中为其创建别名~/.bashrc

alias ssh="ssh -F ~/.ssh/config"

重新启动bash shell,然后您可以像这样简单地ssh:

$ ssh your_user@your_host

请参阅上面的评论。if one supplies on command line -F, then the system wide config is ignored according to man page来自bugzilla.mindrot.org/show_bug.cgi?id=1285 ; 它是一个选项,但并不是真正想要的功能。
akostadinov
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.