如何使用SSH將多個命令發送到聯網系統,以root身份登錄並提供密碼?使用遠程登錄/命令的SSH
我知道你可以這樣做:
ssh -l <username> target_host
登錄,但我不知道如何提供密碼,所以這一切又在同一行執行的命令。我正在尋找一個腳本,其中包含許多單行命令到聯網系統,可以作爲另一臺計算機的一次性運行。
如何使用SSH將多個命令發送到聯網系統,以root身份登錄並提供密碼?使用遠程登錄/命令的SSH
我知道你可以這樣做:
ssh -l <username> target_host
登錄,但我不知道如何提供密碼,所以這一切又在同一行執行的命令。我正在尋找一個腳本,其中包含許多單行命令到聯網系統,可以作爲另一臺計算機的一次性運行。
SSH根@主機 「命令」
即:SSH [email protected] 「貓/ etc/fstab文件」
如果你想執行多個命令,我會建議尋找到某種形式的Expect腳本。我個人是Pexpect(Python)的粉絲。
使用密鑰繞過密碼提示(從人的ssh):
文件的〜/ .ssh/authorized_keys中列出的公共密鑰是 允許 用於登錄當,在用戶登錄ssh程序告訴 服務器 它想用於認證的密鑰對。 客戶端 證明它有權訪問私鑰,服務器 檢查 對應的公鑰是否有權接受該帳戶。
用戶通過運行ssh-keygen(1)創建他/她的密鑰對。此 存儲 在〜/ .ssh /同一性私鑰(方案1),的〜/ .ssh/id_dsa的 (協議 2 DSA),或把〜/ .ssh/id_rsa(方案2 RSA)和存儲該公共 在用戶家中輸入密鑰 〜/ .ssh/identity.pub(協議1),〜/ .ssh/id_dsa.pub(協議2 DSA)或 〜/ .ssh/id_rsa.pub(協議2 RSA)目錄。 用戶應該將公鑰複製到他/她的 主目錄中的 遠程機器上的〜/ .ssh/authorized_keys中。 authorized_keys文件 corre- 支持傳統的〜/ .rhosts文件,並且每 行有一個關鍵字,即 ,雖然這些行可能很長。在此之後,用戶可以使用- 登錄 輸出密碼。
看起來不錯,但是如何在命令中爲root提供密碼呢? :) –
考慮到這種情況,這是OK的。您必須將本地用戶的id_rsa.pub複製到遠程系統上的/root/.ssh/authorized_keys。如果它不起作用,那麼很可能您對authorized_keys文件或remote上的.ssh dir具有錯誤權限(應該由root擁有,700爲dir,對於該文件爲600) –
你總是可以做
ssh [email protected] 'cd /tmp; ls -l'
或
myDir="/tmp"
ssh [email protected] "cd $myDir; ls -l"
我已經鏈接在一起全shell腳本的 '命令' arugment,但我不建議這樣做(更多) ; -0! 。
相反,你的腳本複製到遠程計算機,然後只需運行它
ssh [email protected] 'yourRemoteScript'
最後,你不能提供密碼與包裹在expect
整個事情,很多系統沒有,許多不會允許等等。如果你想要無人值守的操作,你必須使用ssh_keys。在這裏搜索S.O.對於許多貼子究竟如何做到這一點。
祝你好運,我希望這會有所幫助。
我建議設置密鑰認證。 –
SSH根目錄看起來像一個不好的主意。這不是你可以用cron工作做的事情嗎? – Richard
如果很多機器配置了sshd來自動刪除所有的根請求,也不要感到驚訝。這不好。 – kmarks2