如何在批处理文件中运行git clone命令时提供密码

4

我正在制作一个自动克隆git仓库的批处理文件。在批处理文件中,我添加了以下代码:

git clone ssh://user@address/path

但是它的执行方式打动了我:
[exec] Permission denied, please try again.
[exec] Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[exec] fatal: Could not read from remote repository.

因为需要输入密码。 我尝试将命令更改为

git clone ssh://user:password@address/path

但是它仍然要求我输入密码。
有什么建议吗?

这不是答案,请下次阅读问题以核实。那篇帖子中提供的解决方案,在这篇帖子中被宣布为一种尝试。 - Zucca
这就是投票的作用。抱歉,我看到其中有一些SSH的东西。 - Jean-François Fabre
2个回答

1

处理这个问题的最佳方法是建立一个公钥,这样您就不需要密码了。它也更加安全。例如,创建一个新的SSH密钥对:

$ ssh-keygen -t rsa -f ~/.ssh/git_key -C "steve@example.com"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/sowens/.ssh/git_key.
Your public key has been saved in /Users/sowens/.ssh/git_key.pub.
The key fingerprint is:
SHA256:BxqMCuLKKa47IEzmAk7yRpv7MHuIwn9YWp5zlMs0O9A steve@example.com
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|     o           |
|o   . o .        |
|==..   o .       |
|X+.o  o S .      |
|*+*  + E .       |
|B=oo* * +        |
|*.o*.= *         |
|=+o+o o .        |
+----[SHA256]-----+

然后将新的git_key.pub文件添加到您的github帐户中:

https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/

这个文件将是一个文本文件,看起来像这样:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDjk8Ae7kGBhBM/hAhxe4BpjU1HIymRel6TWGJ3E17lki9qJroNjXpqxtsd27C2QSgdEvYEbX6Qv1jeTejpDqTnPdWvjnOWnk5zAo7IhKdKqzCMkBblmHR4LoJs/CeTuNG2vyTx7hb93nBPjni2EV05jW/vkoMoZbMV/4lO1A4oX5L52h5/hGDahfOLxjoU3wfkEssQkDo83GHzk5A5O6kSb6Lv9TFdaWCMqI0ZXOj3CuH3CSCIpoqS1Kibceu3kLHLN8KQZEXQmMrBEkJ69RfugfNtTddOO3gjhVmCAAUzZsRuxGQMDgmT0tnpQaJ0DdSxFwpEFSceR0/06Zykq+dl steve@example.com

这不是Github仓库,而是一个我没有完全访问权限的私有仓库。 - Zucca
联系仓库管理员是有意义的。私有仓库是否公开了 GitHub 用户界面,还是完全通过命令行操作? - Steve Owens

1
你可以使用 sshpass 工具为git提供密码:
sshpass -p password git clone ssh://user@address/path

但请注意,这种方法在安全方面存在问题,使用密钥是更好的选择。

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