我必须编写一些脚本来自动执行“git remote”命令。但是这些命令在调用时会提示输入密码。我怎样才能使命令不会提示输入密码,脚本将在没有提示的情况下运行。
答案 0 :(得分:2)
如果您使用Git助手存储,它将为特定请求模式提供所需的身份验证,并将该模式与凭证文件进行比较。只要商店有权访问凭证文件,它就不应该提示您输入用户名或密码。有关此技术的更多信息,请参阅Git Documentation:
此过程会将未加密的密码存储在磁盘上,仅受文件系统权限的保护。
$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
如上所述,此技术存在缺陷,您的凭据未加密。
答案 1 :(得分:1)
在脚本上存储密码不是一件好事。
最好的方法是将SSH公钥添加到git远程存储库
1)在您的主目录ssh-keygen -t rsa
中并将~/.ssh/id_rsa.pub
复制到远程git存储库
2)现在,如果您使用的是用于git远程命令的SSH类型URL,它将不会要求您输入密码。
从.git/config
文件中检查它。在远程部分中,看到它具有ssh类型或https类型URL
如果是https类型,则按照命令
将其更改为ssh类型git remote set-url origin git+ssh://git@gitlab.com/repository.git
现在它不会要求您提供密码。
如果您计划在多个系统上运行此脚本,则会为所有系统生成公共ssh密钥,并将它们添加到远程存储库中。