当我通过传递自定义参数 ssh 登录到我的 Unix 机器时,如何设置环境变量?

qod*_*nja 8 ssh putty startup-scripts

我想传递一些参数作为我的 ssh 连接的一部分,我可以使用这些参数为我的登录设置自定义变量以执行某些操作或运行某些脚本。你如何在 Windows 机器上运行 Putty,通过 SSH 连接到 CentOS 机器?

cjc*_*cjc 7

在 CentOS 机器上,在您的主目录中创建一个名为的文件,.bashrc并在其中设置您的环境变量。例如,文件的内容可以是:

export VARIABLE=foo
Run Code Online (Sandbox Code Playgroud)

以下是对此的一些讨论: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_01.html


您还可以使用SendEnvAcceptEnv选项。这将允许将客户端上的环境变量传递给服务器。

您还需要更改服务器的sshd_config文件以指定服务器接受哪些环境变量。我不确定你需要用 PuTTY 做什么来发布SendEnv选项,但这应该会让你开始。


Ger*_*der 7

可以在 PuTTY 配置中输入环境变量Connection -> Data

在此处输入图片说明

但这仅在某些条件下有效。从文档中引用 :

Telnet 协议为客户端提供了一种将环境变量传递给服务器的方法。[...]

SSH 协议的第 2 版也提供了类似的机制,更容易实现且没有安全漏洞。较新的 SSH-2 服务器比旧服务器更有可能支持它。

此配置数据不用于 SSH-1、rlogin 或原始协议。

此外,这必须在服务器端允许。对于 OpenSSH 服务器,配置指令被命名为AcceptEnv。在 Ubuntu 服务器上,默认情况下它看起来像这样:

AcceptEnv LANG LC_*
Run Code Online (Sandbox Code Playgroud)

这允许您定义变量LANGLC_以 PuTTY开头的所有变量,因此您始终可以在首选语言环境中获得输出。

如果要设置其他变量,则必须将它们添加到要连接的所有服务器上的列表中。在较旧的(仅限 SSH1)主机上,它根本无法工作。