Git Clone:非法端口号

10

我正在尝试使用用户名和密码克隆一个http仓库,就像这样:

git clone https://username:password@gitlab.com/user/repo.git

然而我遇到了这个错误:

fatal: unable to access 'https://username:password@gitlab.com/user/repo.git': Illegal port number

我正在尝试在使用 AWS Linux 的 EC2 实例上进行此操作。 如果我手动执行并仅在克隆中使用用户名,然后在提示框中输入密码,我可以使其正常工作,但是我正在尝试使用 bash 脚本克隆存储库。


1
请说明您是否可以使用提供的完整URL(包括用户名“username”和密码“password”)重现此问题。如果只能使用具有特定特征的用户名和密码才能重现该问题,则此处给出的示例需要具有这些特征;特别是,密码的字面内容是相关的。 - Charles Duffy
1
我建议您尝试运行bash -x yourscript,并提供 git clone 命令的确切行号--如果您建议的变量中存在隐藏、不可打印或其他意外值,xtrace 日志(使用足够新的 bash)应该会显示它们。 - Charles Duffy
2
我强烈怀疑这是如何在git URL中转义密码@的重复问题,但该问题不够详细,无法确定。 - Charles Duffy
嘿!感谢您的评论。我进行了研究,但问题实际上是我可能不知道要研究什么,因为这就是我从错误中得到的全部信息。在此之前,我花了4个小时尝试找到一些解决问题的答案后,才坦诚地发布了这个问题。密码包含#和%等字符,这可能会导致一些奇怪的行为?我将继续测试。非常感谢! - Miika
1
我很好奇听到那些测试的结果 - 请根据您的发现[编辑]问题。例如,如果您需要知道如何使带有文字“%”的密码起作用,那就更具体了;只要确保您包含的任何占位符或示例密码生成相同的问题即可。 - Charles Duffy
1
占位符的有效性应该很容易测试,因为此错误发生在远程服务器被联系之前,更不用说有机会测试特定凭据对是否正确。所以,如果虚拟密码生成了身份验证错误而不是“非法端口号”,我们就知道手头的问题已经解决了。祝好运! - Charles Duffy
1个回答

4

通过查看Charles的评论,我找到了这个错误发生的原因。密码中包含一个“%”字符和一个4个字符的值,它是“@”字符的URL编码值。这导致它将其视为代理密码(如果我理解正确...基本上解决方案在这里)。

所以我做的就是更改密码,现在它可以正常工作了!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接