2011-10-05 58 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

即使沒有,請參閱我的擴展答案。 –

相關問題