每次我想从终端(在 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'