如何在执行 git push/pull 时禁用密码提示?

如何在执行 git push/pull 时禁用密码提示?

每次我想从终端(在 Linux 中)push和/或pull执行操作时,我都必须输入密码。如何删除此密码,以便无需密码即可拉取和/或推送?

答案1

生成私钥/公钥对,以进行无密码身份验证。

对于 Linux,您的密钥存储在 中~/.ssh

如果您已经在 中有~/.ssh名为id_rsa和的文件id_rsa.pub,那么您已经拥有密钥对。将您的公钥(即id_rsa.pub)的内容附加到 Git 存储库的 ~/.ssh/authorized_keys 文件中。

$ scp ~/.ssh/id_rsa.pub [email protected]:id_rsa.tmp
$ ssh [email protected]
$ cat id_rsa.tmp >> .ssh/authorized_keys

如果你没有密钥对,请使用以下命令生成一个

$ ssh-keygen -t rsa

阅读此内容以获取进一步的说明:http://inchoo.net/tools-frameworks/how-to-generate-ssh-keys-for-git-authorization/

答案2

跑步

git config credential.helper store 

这会将您的凭据存储在根目录中的文件夹中。您需要在此命令后运行git pull/git push并首次提供用户名和密码。此后,它不会提示输入用户名和密码。详情请访问https://git-scm.com/docs/git-credential-store

作为0xc0de在评论中写道,这将以未加密的形式存储密码!

答案3

我创建了一个新分支,之后当我拉取时,我必须输入用户名和密码。然后我解决了使用 ssh 地址(在相关存储库站点上)重新克隆分支的问题。

例如:

git clone [email protected]:sshare/GLE.git

答案4

默认缓存时间为 900 秒(或 15 分钟),超过此时间后,Git 将提示您再次输入用户名和密码。您可以按如下方式更改它(1800 秒 = 30 分钟或 3600 秒 = 1 小时)。($ 代表作为普通非提升用户的 shell 提示符)

$git config --global credential.helper 'cache --timeout=18000'

或者

$git config --global credential.helper 'cache --timeout=36000'

相关内容