如何修复冲突的源密码错误?

How to fix conflicting source password error?

我正在尝试设置一个 gitlab CI/CD。

我使用的脚本 1 是:

sshpass -p $PRIVATE_KEY ssh -p $PORT -o StrictHostKeyChecking=no $USER@$SERVER01 "cd /var/www/html/app && export HISTIGNORE='*sudo -S*' && echo "$PRIVATE_KEY" | ( sudo -S -k git fetch && sudo -S -k git pull )"

如您所见,我正在尝试更新服务器中的应用程序。

仅供参考,我已经在 gitlab CI/CD 设置页面中设置了变量。

但是,当作业运行时,它总是 returns 这个错误消息:

Conflicting password source
 Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
    -f filename   Take password to use from file
    -d number     Use number as file descriptor for getting password
    -p password   Provide password as argument (security unwise)
    -e            Password is passed as env-var "SSHPASS"
    With no parameters - password will be taken from stdin
    -P prompt     Which string should sshpass search for to detect a password prompt
    -v            Be verbose about what you're doing
    -h            Show help (this screen)
    -V            Print version information
 At most one of -f, -d, -p or -e should be used

我已经四处搜索,但没有找到任何线索。

任何线索将不胜感激。

我终于找到了解决办法。

所以上面的命令对 master 分支有效,但对 develop 无效,知道这种模式,我检查了变量设置,然后发现我打开了 Protect variable 标志,标志说 Export variable to pipelines running on protected branches and tags only.

由于develop不是受保护的分支,我以为变量值没有传递到管道中。

所以,我取消选中所有变量的这个标志,终于让它工作了。