jenkins執(zhí)行shell腳本,使用scp免密傳輸失敗問題

jenkins執(zhí)行shell腳本,使用scp免密傳輸失敗問題


問題:Jenkins默認(rèn)使用jenkins用戶去啟動,jenkins用戶并沒有權(quán)限去執(zhí)行ssh免密登陸,所以導(dǎo)致執(zhí)行失敗

注:配置linux雙機互信后,jenkins也需要將公鑰加入到目標(biāo)機器,才能達(dá)到shell腳本中scp免密傳輸?shù)臈l件

一、驗證登錄

1、切換jenkins用戶

# su jenkins

切換后還是root賬號

2、分析解決:

2.1 應(yīng)該是/etc/passwd文件中的/bin/bash被yum安裝的時候變成了/bin/false

# vim /etc/passwd

jenkins:x:990:988:Jenkins Automation Server:/var/lib/jenkins:/bin/false(bash)

將bin/false改為/bin/bash

再次執(zhí)行切換

# su jenkins

bash-4.1$

2.2? 結(jié)果命令提示符的用戶名不是jenkins而變成了 bash-4.1$,原因是在安裝jenkins時,jenkins只是創(chuàng)建了jenkins用戶,并沒有為其創(chuàng)建home目錄

# vim ~/.bash_profile

在文件的最后添加?export PS1='[\u@\h \W]\$',執(zhí)行文件使修改項起作用

# source ~/.bash_profile

驗證是否成功? ?# su jenkins

二、為jenkins系統(tǒng)用戶開啟免密登錄

1、在Jenkins的使用過程中,如果在腳本中使用到sudo命令,有可能出現(xiàn)如下所示的錯誤:

sudo: no tty present and no askpass program specified

這是因為Jenkins服務(wù)器在執(zhí)行sudo命令時的上下文有誤,導(dǎo)致這個命令執(zhí)行的異常。

2.1 解決方法:

# sudo visudo

在文件末尾加上jenkins ALL=(ALL) NOPASSWD: ALL

2.2 重啟jenkins,測試

# su jenkins

# sudo su -s /bin/bash jenkins

測試成功,jenkins免密登錄成功。

PS:如果誤操作修改了/etc/sudoers的權(quán)限來修改上述文件,則會導(dǎo)致如下所示的錯誤:

sudo :/etc/sudoers is world writable

sudo : no valid sudoers source found, quitting

sudo : unable to initialize poling plugin

這是Linux的一種保護(hù)機制。因此,如果出現(xiàn)上述誤操作,則需要執(zhí)行如下命令來解決:

$ pkexec chmod 0440 /etc/sudoers

三、jenkins用戶開通ssh免密登錄

1、安裝ssh

# yum install ssh

1.1 將ssh服務(wù)設(shè)置開機自啟

# sudo systemctl enable sshd

1.2 啟動ssh

#?sudo systemctl start sshd

2、生成jenkins用戶秘鑰證書

# su jenkins

# ssh-keygen -t rsa

2.1 查看是否生成成功

#?/var/lib/jenkins/.ssh/

# ls

3、將公鑰傳輸?shù)侥繕?biāo)linux系統(tǒng)

ssh-copy-id -i /var/lib/jenkins/.ssh/id_rsa.pub root@目標(biāo)ip:path


------------------------------------------------------------------------------------------

參考:https://blog.csdn.net/weixin_43840640/article/details/90371472

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容