2012-11-01 187 views
1

我是shell腳本的新手,我有centos正在運行。我想編寫一個shell腳本,它是一個遠程機器並執行一堆命令。我面臨的問題是如何將用戶名,密碼,遠程機器地址和私人訪問密鑰提供給連接遠程機器的命令。遠程SSH的Shell腳本

我Google'd並找到一些腳本,但他們都需要一個名爲expect的實用程序,我不想安裝任何實用程序,只能運行我的腳本。有沒有辦法做到這一點?

+5

您可以使用[公鑰](http://www.ece.uci.edu/~chou/ssh-key.html)自動登錄。 – Yamaneko

+0

ssh公鑰是維克多雨果已經提出的「正確」方法。除此之外:期望是一個相當古老,流行和成熟的工具,是否有任何你不想安裝的理由? –

+0

是隻有一個腳本的cuz不想安裝任何實用程序。我將不得不說服網絡人員。 –

回答

2

你可以通過你的電話ssh需要,執行以下操作:

ssh -i private_key_path [email protected]_machine "command" 

如果你打算使用此連接多次,並希望保持它配置,下面幾行添加到你.ssh/config文件:

Host host_alias 
    User user_name 
    HostName remote_machine 
    IdentityFile private_key_path 

,然後訪問遠程計算機,並執行您想要的命令,這樣做:

ssh host_alias "command" 

請注意,命令AFAIK必須包含在引號中,因爲它必須被認爲只有一個參數ssh