0
我想通過fabric打開交互式ssh shell。從python打開交互式ssh shell時出錯
要求:
- 連接字符串以遠程
- 打開完全交互式殼中使用的織物的主機在當前終端
- 作品在OSX和Ubuntu
- 無需織物之間/數據傳送python和遠程。所以結構任務可以在後臺結束。
到目前爲止:
fabfile.py:
def test_ssh():
from subprocess import Popen
Popen('ssh [email protected] -i "bla.pem"', shell=True)
在終端:
localprompt$ fab test_ssh
localprompt$ tcsetattr: Input/output error
[remote ubuntu welcome here]
remoteprompt$ |
然後,如果我嘗試輸入的命令在遠程提示它被本地執行我回到當地的提示。 有誰知道解決方案?
注意:我知道織物open_shell
,但這對我來說不起作用,因爲stdout滯後,導致無法使用。
爲什麼你想打開一個ssh shell與織物?爲什麼不直接將命令作爲結構任務運行? –
上面的代碼根本不使用結構。 Popen是當地的一名指揮官。我認爲在結構任務中執行它是沒有意義的。 –
那麼,通常我通過結構做東西,但有些東西只需要一個交互式外殼。我想用fabric來做這件事,因爲現在我有大約20多個sh腳本來連接到我的各種服務器,並且開始讓我惱火地讓連接字符串保持同步。結構將是適當的工具,因爲它已經有了所有的連接字符串。 – RickyA