2011-10-05 93 views
2

我想只能ssh到一个服务器,我不能修改配置文件,并在获得常规交互式会话之前用几个命令设置环境。如何在交互式SSH会话开始时插入命令?

任何想法?

我一直在最后使用期望脚本和“交互”命令 - 它适用于大多数情况,但笨拙并打破了一些控制台应用程序。也一直期望空虚的期望和socat。还有其他建议吗?

+0

哎呀,刚才看到你不能编辑配置文件。 –

+0

这或多或少是我想达到的目标:http://stackoverflow.com/questions/1633750/ssh-with-command-plus-the-shell/1634179#1634179但它仍然会破坏一些东西。 –

回答

1

如果你能写的地方在文件系统中,你可以调用的bash与自定义RC文件是这样的:

ssh [email protected] -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" 
[email protected]:~$ echo $FOO 
foo 
[email protected]:~$ echo $BAR 
bar 
+0

干杯,但它不帮助我害怕。我已经使用-t和-tt - 而且我真的不能写入文件系统。这是一个PITA :) –

+0

你甚至不能将文件推送到'/ tmp'中吗? –

+0

即使没有,请参阅我的扩展答案。 –