通过 SSH 传递本地环境变量不起作用

通过 SSH 传递本地环境变量不起作用

在本地和远程运行 Ubuntu 22。

我试图在 ssh 期间将一些环境变量从本地传递到远程;最终目标是能够按照以下方式定义 GIT_AUTHOR_NAMEhttp://cweiske.de/tagebuch/carry-git-settings.htm

但是,SSH 之后环境变量没有在远程设置。LANG据我所知,这包括应该预设为传递的变量。

当地的:

我已经添加GIT_*SendEnv(尝试将其放在顶部、全局以及在 Host 内,以防有帮助!)LANG已经存在:

〜/.ssh /配置

SendEnv LANG LC_* GIT_*

Host 1.2.3.4
  HostName 1.2.3.4
  User username
  SendEnv LANG LC_* GIT_*

并设置了环境变量:

echo $GIT_AUTHOR_NAME 返回 ABC

echo $LANG返回en_NZ.UTF-8

偏僻的:

/etc/ssh/sshd_config

...
UsePAM yes
...
PermitUserEnvironment yes
...
AcceptEnv LANG LC_* GIT_*
...

并重新加载远程 ssh/etc/init.d/ssh reload

SSH:

ssh user@server -v

...
debug1: Sending environment.
debug1: Sending env LANG = en_NZ.UTF-8
debug1: Sending env GIT_AUTHOR_NAME = ABC
Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-1013-aws x86_64)
...

它似乎正确发送了环境变量,日志中没有明显的错误,但是在远程......

echo $LANG返回C.UTF-8(我认为这是默认的)

echo $GIT_AUTHOR_NAME返回空白

所以我的环境变量是不是通过 ssh 传递。

我读过一些其他关于LANG在 .profile 中被覆盖的帖子,但这并不能解释为什么我的自定义GIT_*变量不起作用。

我也尝试过:

ssh user@server -o SendEnv=LANGssh user@server -o SendEnv=GIT_AUTHOR_NAME

这完全是同样的问题。

我认为遥控器上一定还有其他设置(在/etc/ssh/sshd_config??中)我需要检查,但不确定。

任何帮助,都非常感谢。

谢谢

相关内容