在中ssh_config
,可以选择使用 将一些环境变量导出到主机SendEnv
。
是否还有一种方法可以强制每个主机指定此变量的值?例如,是否可以仅在连接到主机时导出$FOO
带有值的变量?bar
example.com
答案1
你不能给出具体的价值对于中的环境变量ssh_config
,但您当然可以将现有的环境变量仅发送给特定主机。
Host example.com
SendEnv FOO
完成链条:
FOO=bar ssh [email protected]
AcceptEnv
最后,远程服务器必须在其 中列出环境变量sshd_config
。
AcceptEnv FOO
答案2
您可以使用来指定特定值SetEnv
,~/.ssh/config
例如
Host *
SetEnv FOO=bar
按照man ssh_config
:
直接指定要发送到服务器的一个或多个环境变量及其内容。与 类似
SendEnv
,服务器必须准备好接受环境变量。
假设你的服务器收到以下行/etc/ssh/sshd_config
:
AcceptEnv LANG LC_* FOO
另请检查:man ssh_config
和man sshd_config
。
答案3
您可以使用 .ssh/config 文件设置每个主机的配置值。例如:
Host example.com
SendEnv FOO
请注意服务器也必须支持它。
答案4
另一个想法是在 ssh 命令中设置环境变量并运行交互式 shell,例如我尝试使用环境变量“MANWIDTH”调用交互式 shell:
ssh example.com 'MANWIDTH=120 bash -li'