解決 shell指令碼中SCP命令需要輸入密碼的問題

2021-08-01 17:25:15 字數 601 閱讀 4925

使用金鑰檔案,兩台機器建立信任

這裡假設主機a(192.168.100.3)用來獲得主機b(192.168.100.4)的檔案。

在主機a上執行如下命令來生成配對金鑰:

ssh-keygen -t rsa

遇到提示回車預設即可,公鑰被存到使用者目錄下.ssh目錄,比如root存放在:

/root/.ssh/id_rsa.pub

將 .ssh 目錄中的 id_rsa.pub 檔案複製到 主機b 的 ~/.ssh/ 目錄中,並改名為 authorized_keys,

到主機a中執行命令和主機b建立信任,例(假設主機b的ip為:192.168.100.4):

scp ~/.ssh/id_rsa.pub 192.168.100.4:/root/.ssh/authorized_keys

下面就可以用scp、ssh命令不需要密碼來獲取主機b的檔案了

ssh 192.168.100.4 回車就不需要密碼了。

注:其實id_rsa.pub內容新增到對方機器的authorized_keys中就行了

shell指令碼利用expect實現scp免密傳輸

shell指令碼實現scp傳輸 命令解釋 c 表示可以在命令列下執行except指令碼 spawn 命令啟用乙個unix程式來互動,就是在之後要執行的命令 expect aaa 表示程式在等待這個aaa的字串 send 向程式傳送字串,expect和send經常是成對出現的,比如當expect aa...

shell指令碼實現檔案遠端拷貝scp

場景 將a伺服器上面的cc.jar包,複製到b伺服器上面 實現方法1 1 寫指令碼cp.sh 內容為 bin bash ip 1 注釋 這裡引數化了目標伺服器的ip,執行指令碼時候將引數加在後面 scp.exp cc.jar root 1 root tools 寫完後給許可權 chmod 777 c...

基於shell指令碼中cd命令無效的解決方法

在學習的時候,經常要切換到固定的資料夾,於是寫了個shell指令碼用cd命令切換卻發現目錄切換不了。如下 bin bash c.sh cd mnt hgfs vmshare pwd解釋 執行的時候是.c.sh來執行的,這樣執行的話終端會產生乙個子shell 類似於c語言呼叫函式 子shell去執行我...