我正在尝试将Shell脚本嵌套到Jenkins作业中,但是使用bash git clone
命令时,该脚本将无限卡住。
它甚至没有给我发送错误。我怀疑脚本进入git clone
命令时是否要求输入密码。
詹金斯的职位配置:
#!/bin/sh
set -x
whoami #returns 'jenkins'
sudo -u root ./my_script.sh
my_script.sh
whoami #returns ROOT
sudo git clone 'https://myusername:mypassword@my.forge.fr/project/my-project.git' -b "master" --verbose
到目前为止我尝试过什么
jenkins ALL=NOPASSWD: ALL
git clone
命令中输入了错误的凭据,但收到了错误消息remote: HTTP Basic: Access denied
jenkins
用户并运行sudo ./my_script.sh
,它运行正常,无需输入密码。 root
用户下运行时,它也可以正常工作(不足为奇)有人知道我如何获得工作以使此命令通过吗?
修改
我在Mac OS上
答案 0 :(得分:1)
我终于解决了它,它的确来自证书,但不是我想到的。问题来自钥匙串访问。我也表示歉意,我没有指定我使用的是 Mac ,因为我使用的是bash,因此我认为这与此处无关。
在Jenkins用户下运行脚本时,它与我使用sudo一样运行良好,但是当我尝试直接运行sudo git clone 'https://myusername:mypassword@my.forge.fr/project/my-project.git' -b "master" --verbose
时出现错误:
我找不到英文错误消息,但基本上它说“无法找到要存储的钥匙串...” ,并回答“取消”和“重置我的默认钥匙串”
从那里我:
jenkins-dev
的新钥匙串/Users/myuser/Library/Keychains
复制到了/Users/Shared/Jenkins/Library/Keychains
security unlock-keychain /Users/Shared/Jenkins/Library/Keychains/jenkins-dev.keychain-db
security default-keychain /Users/Shared/Jenkins/Library/Keychains/jenkins-dev.keychain-db
git clone ...
命令行,然后它找到了钥匙串,存储了访问权限,而我的Jenkins脚本不再卡住了希望这可以帮助
答案 1 :(得分:0)
您在该计算机上的〜/ .ssh / id_rsa.pub中有密钥吗?