git用户名和密码保存文件_关于凭证:如何在Git中保存用户名和密码?

我想在gitextension中使用自动推拉,而不需要每次都在提示中输入我的用户和密码。

那么,我如何将我的凭证保存在Git中呢?

git config credential.helper store

然后

git pull

提供用户名和密码,稍后将记住这些详细信息。凭证存储在磁盘上的一个文件中,磁盘权限为"仅用户可读/可写",但仍为纯文本。

如果以后要更改密码

git pull

将失败,因为它失败了,它从~/.git-credentials文件中删除有问题的用户+密码,所以现在运行

git pull

提供一个新密码,它将像以前一样工作。

-u标志对于以后更改密码有何重要意义?

对于debian/ubuntu,使用libsecret stackoverflow.com/questions/36585496/…

@卢西德布罗很抱歉回答得太晚。git pull-u不使用最新版本。我已经更新了答案。希望它能回答你的问题。

请注意,这将把您的用户名和密码存储在~/.git凭证处的纯文本文件中。任何人都可以打开并阅读。

这不管用。它不能拉。

编辑edited Oct 22 at 23:45没有意义。@罗杰帕克,你要运行git pull来更改密码吗?

好吧,fetch也可以,任何"re-requires"密码都可以做到:)

它只适用于一个存储库,即您当前所在的repo。如果我想和另一家回购公司合作,我需要再做一次。

@Shamsularefinsajib使用git config --global ...。

store是不安全的,如果我的机器被偷了?我注定……,应该是埃多克斯。

您可以使用git config在git中启用凭证存储。

git config --global credential.helper store

当运行这个命令时,当您第一次从远程存储库中拉或推时,您将被问及用户名和密码。

打开之后,对于与远程存储库的后续通信,您不必提供用户名和密码。

存储格式是以纯文本形式存储的.git-credentials文件。

此外,您还可以为git config credential.helper使用其他帮助程序,即内存缓存:

git config credential.helper cache

这需要一个可选的timeout parameter来决定它的执事应该运行多长时间,它的default值是900 seconds (15 minutes).值。

警告:如果使用此方法,您的Git帐户密码将以plaintext格式保存,以global .gitconfig file格式保存,例如在Linux中,它将是/home/[username]/.gitconfig格式。

如果您不希望这样做,请使用ssh key作为您的帐户。

希望您显示.gitconfig文件-第一个命令已被第二个命令覆盖:.(

打开凭据帮助器,以便Git将您的密码保存在内存中一段时间:

在终端中,输入以下内容:

# Set git to use the credential memory cache

git config --global credential.helper cache

默认情况下,Git会将您的密码缓存15分钟。

要更改默认密码缓存超时,请输入以下内容:

# Set the cache to timeout after 1 hour (setting is in seconds)

git config --global credential.helper 'cache --timeout=3600'

来自Github帮助

你是唯一一个建议全球版本的人,这很重要,因为每次我重新克隆回购协议时,它都会给我造成破坏。

如何将超时设置为无穷大?我再也不想输入密码了。

@阿瓦曼德只需将cache部分替换为store。所以,完全命令是:git config --global credential.helper store。请注意,这将把您的密码存储在一个打开的文本文件中(比如说,不加密)。

@casper如果不使用多个帐户,则不会像应该的那样根据电子邮件从存储中提取密码,而是使用列表中的第一个。

@阿瓦曼德尔这应该是那样的吗,还是可能是个虫子?--timeout参数的最大值是多少?

您可以这样设置用户名和密码:

git config --global user.name"your username"

git config --global user.password"your password"

这对我不起作用,Git Clone仍然要求输入用户名和密码。

我不建议这样存储您的密码,因为"git-config--global-l"会在控制台上显示您的密码。

您可以编辑~/.gitconfig文件来存储您的凭证。

sudo nano ~/.gitconfig

应该已经有了

[user]

email = [email protected]

user = gitUSER

您应该在这个文件的底部添加。

[credential]

helper = store

我推荐这个选项的原因是因为它是全局的,并且如果在任何时候您需要删除这个选项,那么您就知道该去哪里并更改它。

仅在个人计算机中使用此选项。

然后拉克隆输入您的git密码,一般情况下,密码将以~/.git-credentials格式保存。

https://GITUSER:[email protected]

其中domain.xxx可以是github.com bitback.org其他

参见文档重新启动终端。

别忘了重新启动GitBash窗口。只有当我这样做的时候,它才对我有效。

对于全局设置,打开终端(从任意位置)运行如下:

git config --global user.name"your username"

git config --global user.password"your password"

这样,您机器上的任何本地git repo都将使用该信息。

您可以通过执行以下操作为每个回购分别配置:

打开repo文件夹中的终端。

运行如下:

git config user.name"your username"

git config user.password"your password"

它只影响该文件夹(因为您的配置是本地的)。

您可以使用Git凭据存储将密码未加密存储在磁盘上,仅受文件系统权限保护。

例子

$ git config credential.helper store

$ git push http://example.com/repo.git

Username:

Password:

[several days later]

$ git push http://example.com/repo.git

[your credentials are used automatically]

您可以检查存储在文件~/.git-credentials中的凭证。

有关更多信息,请访问Git凭据存储-用于在磁盘上存储凭据的帮助程序

如果使用ssh身份验证,您将比使用用户名/密码身份验证更安全。

如果您使用的是Mac,那么ssh客户机身份验证将集成到MacOS密钥链中。创建ssh密钥后,在终端中键入:

ssh-add -K ~/.ssh/id_rsa

这将把ssh私钥添加到macos密钥链中。Git客户端在连接到远程服务器时将使用ssh。只要您在服务器上注册了ssh公钥,就可以了。

应该是K而不是K?

仅供参考:我正在使用Mac电脑。尽管如此,从"man"信息中可以看到:"-k"在将密钥加载到代理或从代理中删除密钥时,只处理普通的私钥并跳过证书。-k"添加标识时,每个密码短语也将存储在用户的钥匙链中。删除带有-d的标识时,每个密码短语都将从中删除。

我认为这不适用于基于HTTPS的存储库。

这个答案似乎混淆了密码(https repos)和ssh私钥。

是的,我推荐的解决方案是ssh,而不是https。因此,命令"ssh add"。对于HTTPS,这将是上面提到的解决方案"Git凭证osxkeychain"(在Mac上)。

我不同意。通过向主机授予SSH访问权,您不能更安全。使用HTTP认证,窃取凭证的人只能访问GitHub/GitLab。此外,代币的设计寿命有限。

在这种情况下,您需要使用以下命令行让Git记住您的GitHub密码和用户名:

git config --global credential.helper wincred

如果您使用的是使用ssh密钥的repo,那么您需要ssh密钥进行身份验证。

只需在URL中输入您的凭据,如下所示:

https://Username:[email protected]/myRepoDir/myRepo.git

您可以这样存储:

git remote add myrepo https://Userna...

…使用它的示例:

git push myrepo master

现在要列出URL别名:

git remote -v

…删除其中一个的命令:

git remote rm myrepo

你也可以把你的密码放在URL之外,这样Git会要求你输入密码,而不是你的用户名。

除了编辑~/.gitconfig文件。

注意要始终使用单引号:

git config --global user.name 'your username'

git config --global user.password 'your password'

如果使用双引号,用户名和密码可能会使用一些字符来破坏密码。

你可能感兴趣的:(git用户名和密码保存文件)