前陣子搞了很多持續整合,為了達到系統自動化佈署與測試,除了 Docker 以外還用了很多奇怪的 Linux Shell Script 來實現自動化,今天記錄一下自動化的奇技淫巧,或許哪天自己忘記可以查查筆記。
透過 Linux Script 命令直接設定並修改使用者密碼
echo ${USERNAME}:${PASSWORD} | chpasswd
echo -e "${PASSWORD}\n${PASSWORD}" | passwd ${USERNAME}
略過 Host Key Check 執行 ssh, scp, ssh-copy-id
當第一次透過 SSH 連線到其他主機時,都會出現是否加入該主機的 Public Key,作為後續登入的驗證檢查,但有時候開發安裝程式或 CI/CD 的時候就需要繞過這個檢驗,最好的方法就是事先置入公鑰。如果真的沒有辦法,可以透過「-o StrictHostKeyChecking=no」參數來略過檢查,也是很方便的。
ssh -o StrictHostKeyChecking=no
scp -o StrictHostKeyChecking=no
ssh-copy-id -o StrictHostKeyChecking=no
透過 sshpass 自動輸入 SSH 密碼
除了上述的 Host Key Check 之外,在沒有預先 Copy Public Key 的情況下,SSH 還會需要輸入「密碼」,如果你的 CI/CD 佈署 Script 想要自動輸入的話,可以透過 sshpass 命命來完成,如下:
sshpass -p ${SSH_PASSWORD} ssh [email protected]
sshpass -p ${SSH_PASSWORD} scp file [email protected]:
噁心的 Script 就先這樣,以後有新的黑暗技會再補充。