scp指令
Linux下可以使用scp遠端複制,指令如下
scp -P 22222 -r wlx.text [email protected]:/root
參數說明:
-P 指定端口
-r 複制目錄
wlx.text 要複制的檔案
[email protected]:/root 對方使用者名 ,IP,位置
按回車後輸入密碼,然後就直接複制到遠端主機上了,這樣每次輸入密碼太麻煩了
sshpass 指令
yum install -y sshpass 安裝
sshpass -p 123456 scp -P 22222 -r wlx.text [email protected]:/root 直接把密碼帶入
注意
如果沒有則說明沒有連接配接過該機器如果直接使用 sshpass 一般會報一個 Host key verification failed. 錯誤,因為該遠端機器從未連接配接過,檢查known_hosts檔案:vi ~/.ssh/known_hosts ,看有沒有該IP(222.222.xx.xx)的資訊, 如果沒有則說明沒有連接配接過該機器.

如果沒有使用一下scp指令成功就會生成了,生成這個資訊之後,下次直接sshpass 就可以使用了
~/.ssh/known_hosts 檔案的作用
ssh會把你所有通路過的電腦的公鑰(public key)都記錄在~/.ssh/known_hosts檔案。
當下次通路相同電腦時,OpenSSH會核對公鑰,
如果核對不上,OpenSSH會發出警告, 避免你受到DNS Hijack之類的攻擊。
jenkins 問題
jenkins部署時執行scp指令,也會報Host key verification failed. 錯誤。報這個問題是因為Jenkins安裝的時候/etc/passwd檔案中的/bin/bash被yum安裝變成了/bin/false.
vim /etc/passwd
使用 su jenkins 切換到jenkins使用者後,指令提示符的使用者名不是jenkins而變成了 -bash-4.2#
原因是在安裝jenkins時,jenkins隻是建立了jenkins使用者,并沒有為其建立home目錄。是以系統就不會在建立使用者的時候,自動拷貝/etc/skel目錄下的使用者環境變量檔案到使用者家目錄,也就導緻這些檔案不存在,出現-bash-4.2#的問題了
以下指令是在切換到jenkins使用者下執行的!(隻是使用者現在顯示的是-bash-4.2)
這個時候需要切會root使用者先對.bash_profile 做修改
vim ~/.bash_profile
export PS1='[\[email protected]\h \W]\$' 在最後輸入,結果如下
source ~/.bash_profile 重新整理.bash_profile檔案,使其起作用
su jenkins 在切換回jenkins使用者,已顯示使用者名了
在jenkins使用者下執行scp或部署中的腳本輸入好密碼後,就可以切換回boot使用者了,然後就可以使用jenkins正常執行指令了
參考:
PS1:指令行提示符環境變量
具體可以參考:http://zhidao.baidu.com/link?url=rMCdJazfyycZlY5xN-peNO-pUwTcPMROlXvrZZjE2EV9fDA7513e1JsiGXiWPlBWgArqrHNGu4yBvwNSY0Y79_
jenkins配置參照: https://blog.csdn.net/HHYCSDNBK/article/details/84975095