首页 > 解决方案 > Azure CLI:我不处理协议

问题描述

我正在尝试从私人仓库安装文件。我正在使用 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:致命:我不处理协议'​​​​

但这似乎没有帮助。我将不胜感激有关此的任何指示

标签: gitazure-cli

解决方案


将文字用户名和密码编码到httpor httpsURL 的语法是:. 也就是说,该部分在该部分之后,在主机名之前。https://user:password@host.example.com/text?passed&to=hostuser:passwordhttps://

(以上内容来自评论,并进行了一些格式化。)

请注意,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

我意识到这是人们用来安装 nodejs 的标准方式(访问https://rpm.nodesource.com/setup_10.x来查看)。我只是希望不是。


推荐阅读