我想传递一些参数作为我的SSH连接的一部分,我可以使用它来为我的login设置自定义variables来执行某些操作或运行某些脚本。 你如何在Windows机器上运行Putty,通过SSH连接CentOS机器?
在CentOS机器上,在您的主目录中创build一个名为.bashrc的文件,并在其中设置您的环境variables。 例如,文件的内容可以是:
导出VARIABLE = foo
这里有一些讨论: http : //tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_01.html
[编辑]
感谢您的澄清。
您可以使用SendEnv和AcceptEnv选项。 这将允许将客户端上的环境variables传递给服务器。
您还需要更改服务器的sshd_config文件以指定服务器接受哪些环境variables。 我不确定你需要用PuTTY来发出SendEnv选项,但是这会让你开始。
您可以修改sshd.conf中的PermitUserEnvironment以允许在〜/ .ssh / authorized_keys中的键上处理〜/ .ssh / environment或“environment =”选项。
这两个文件的格式不同。 〜/ .ssh / environment是VARIABLBE = VALUE的行,其中〜/ .ssh / authorized_keys的环境选项是environment =“VARAIBLE = VALUE”
我相信没有人回答你的问题: 你怎么能在腻子中设置环境variables?
我发现有人回答了这个问题,最好在这个截图中演示: http : //www.lordvan.com/drupal/files/putty%20connection%20data%20settings.png
您可以在Connection -> Data下的PuTTYconfiguration中input环境variables。
但是这只在一定条件下才起作用。 从文档引用:
Telnet协议为客户端提供了将环境variables传递给服务器的方法。 […]
SSH协议的第二版也提供了类似的机制,这个机制在没有安全缺陷的情况下更容易实现。 较新的SSH-2服务器比较老的服务器更有可能支持它。
此configuration数据不在SSH-1,rlogin或raw协议中使用。
此外,这必须在服务器端允许。 对于OpenSSH服务器,configuration指令被命名为AcceptEnv 。 在Ubuntu服务器上,默认情况下是这样的:
AcceptEnv LANG LC_*
这使您可以在PuTTY中定义variablesLANG和所有以LC_开头的variables,因此您可以始终以首选语言环境获取输出。
如果要设置其他variables,则必须将其添加到要连接的所有服务器的列表中。 在较旧的(仅限SSH1)主机上,根本无法工作。