在本地和远程运行 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=LANG
和
ssh user@server -o SendEnv=GIT_AUTHOR_NAME
这完全是同样的问题。
我认为遥控器上一定还有其他设置(在/etc/ssh/sshd_config
??中)我需要检查,但不确定。
任何帮助,都非常感谢。
谢谢