4
我想爲腳本寫入一些登錄信息,以供許多用戶使用。在python中,我將input_raw設置爲從dev/tty讀取,但是當我連接到通過ssh在服務器上運行的腳本時,它會發生可怕的故障。在ssh會話中啓用tty
想法?解決方法?
我寧願避免硬編碼腳本中的用戶名。
請謝謝。
我想爲腳本寫入一些登錄信息,以供許多用戶使用。在python中,我將input_raw設置爲從dev/tty讀取,但是當我連接到通過ssh在服務器上運行的腳本時,它會發生可怕的故障。在ssh會話中啓用tty
想法?解決方法?
我寧願避免硬編碼腳本中的用戶名。
請謝謝。
嘗試使用-t
選項SSH:
-t Force pseudo-tty allocation. This can be used to execute arbi- trary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.
似乎有沒有在~/.ssh/config
等效的選項,所以你需要創建一個shell腳本。一個簡單的一種是:
#!/bin/sh
ssh -t "$*"
保存爲ssh-t
什麼的,chmod +x ssh-t
,並把它放在你的PATH
。然後設置GIT_SSH=ssh-t
告訴Git使用這個腳本。
這可能會起作用,但我通過git push啓動了ssh連接。有沒有辦法注入-t選項? – myusuf3 2010-07-30 14:56:01
@garbagecollector:[GIT_SSH](http://www.kernel.org/pub/software/scm/git/docs/)環境變量告訴Git哪個命令用於ssh。正如在該頁面上所解釋的那樣,要將選項傳遞給ssh,可以將其包裝在另一個shell腳本中,或使用'〜/ .ssh/config'(我推薦後者)。 – 2010-07-30 21:37:00
@garbagecollector:根據[SSH - 如何在〜/ .ssh/config文件中包含「-t命令」](http://serverfault.com/questions/56086/ssh-how-to-include-t- ssh-config-file中的命令),似乎沒有-t的等效配置選項。我會創建一個shell腳本(請參閱編輯的答案)。 – 2010-08-03 20:26:49