管理多台 Linux 伺服器時,每次 SCP 輸入密碼極度低效。利用 SSH 公開金鑰認證,即可實現自動化無密碼分發。
mkdir -p ~/.ssh chmod 700 ~/.ssh /usr/bin/ssh-keygen -t rsa
執行 ssh-keygen 時可直接按 Enter 跳過密碼設定,實現完全無密碼。
在目標主機建立授權檔案:
touch ~/.ssh/authorized_keys
從分發主機推送公開金鑰:
ssh 192.168.1.20 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
說明: 192.168.1.20 為分發主機 IP。首次連線需輸入 yes 確認指紋並提供目標主機密碼。
chmod 600 ~/.ssh/authorized_keys
ssh 192.168.1.19 hostname
若輸出主機名稱(如 RS9),表示金鑰認證已生效。
在分發主機建立 scp.sh:
scp -r /usr/local/adsit/webapps/preroll/WEB-INF/classes root@192.168.1.19:/home/adsit/ scp -r /usr/local/adsit/webapps/preroll/WEB-INF/classes root@192.168.1.10:/home/adsit/
執行 scp.sh 即可自動完成多主機檔案同步,無需重複輸入密碼。
~/.ssh/id_rsa 私鑰權限為 600。~/.ssh 與 authorized_keys 權限皆需正確設定。