如何在交互式SSH会话开始时注入命令?

时间:2011-10-05 11:56:29

标签: ssh expect openssh

我希望能够ssh到服务器,在获得通常的交互式会话之前,我无法修改配置文件并使用多个命令设置环境。

有什么想法吗?

我一直在使用带有“交互”命令的expect脚本 - 这适用于大多数事情,但是笨拙并打破了一些控制台应用程序。还有空洞的期待和社交。还有其他建议吗?

1 个答案:

答案 0 :(得分:1)

如果你能够在文件系统上的某个地方写,你可以用这样的自定义rc文件调用bash:

ssh me@example.com -t bash --rcfile /home/user/my_private_profile -i

请注意,这似乎仅适用于交互式shell,而不适用于登录shell。即使您正在指定命令,ssh的-t选项也会使其分配pty。

如果无法在任何地方写入文件系统,可以使用子shell将命名管道作为rcfile提供:

$ ssh ares -t "bash --rcfile <(echo 'FOO=foo';echo 'BAR=bar') -i"
axa@ares:~$ echo $FOO
foo
axa@ares:~$ echo $BAR
bar