我正在尝试从私人存储库安装文件。我正在使用azure cli run命令来调用这些操作。
这是运行命令的样子:
az vm run-command invoke --name ${MONITOR_VM_NAME} \
--command-id RunShellScript \
--resource-group ${RSC_GRP_NAME} \
--scripts "
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash
sudo yum -y install nodejs
cd /etc/
sudo git clone \${REPO_USER_NAME}:\${REPO_PASSWORD}@https://bar.visualstudio.com/Foo/_git/Eth-Netstats
"
不幸的是,我在输出中看到了这一点:
致命:我不处理协议 ':@https'
我看过这里:
https://github.com/brackets-userland/brackets-git/issues/965
和
git: fatal: I don't handle protocol 'http'
但是它似乎没有帮助。我希望对此有任何指点
答案 0 :(得分:1)
用于将文字用户名和密码编码为http
或https
URL的语法为:https://user:password@host.example.com/text?passed&to=host
。也就是说,user:password
部分在https://
部分之后,在主机名之前。
(以上内容已从注释中移出,并进行了格式化。)
请注意,ssh URL可以使用类似的格式:ssh://user:password@host.example.com/...
,尽管在ssh URL中包含纯文本密码会更糟,因为ssh很难阻止纯文本密码。 (纯文本密码在任何地方都不是个好主意,但至少在使用https时,有一个借口是该领域的标准化程度较低。)但是Git具有一种特殊形式,可以将user@host:...
视为ssh://user@host/...
的简写。
此外:我在上面表达的安全问题完全被淹没了:
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash
我意识到这是人们用来安装Node.js的一种标准方式(请访问https://rpm.nodesource.com/setup_10.x进行查看)。我只是希望不是。