Magit保存密码和用户名

9

Magit 是使用 Github 的一个良好选择。当我想将我的提交推送到 Github 时,它总是会要求我的用户名和密码。 Emacs 怎样才能保存我的密码呢?

此致敬礼。


你肯定会得到其他答案,但这是我的非官方评论,基于一个家庭安装,安全不是问题。函数magit-process-password-prompt有一行代码(process-send-string proc (concat (read-passwd prompt) "\n"))。你可以用自己硬编码的密码替换(read-passwd prompt),例如(process-send-string proc (concat "12345678" "\n"))。通过修改函数magit-process-username-prompt,用户名的过程也是类似的。 - lawlist
4
你可以选择将URL更改为SSH,或者创建一个~/.netrc文件并继续使用HTTPS。 - legoscia
一定要使用SSH,如果你没有经验,这个链接会带领你完成:https://help.github.com/articles/generating-ssh-keys - Jordon Biondo
2个回答

16

这与Magit并没有太大关系。如果您正确配置Git,它也可以在Magit中工作。可以使用ssh密钥credential.helper。我推荐前者,但这也需要配置ssh-agent,而如何完成可能因分发版本而异。


谢谢。我从Github页面配置了我的ssh密钥,具体步骤请参考github,并且我也在终端中使用过一次。现在它可以正常工作了。 - itirazimvar
1
或许我只是想确保每个Magit问题都有足够的答案(通过回答那些没有答案的问题)[作为对用户的免费服务],在这个过程中一直回到这个问题,因为它的答案没有被正确标记。我不在乎是否获得了额外的奖励分数。 - tarsius
@tarsius 这是帮助信息:要更改默认的密码缓存超时时间,请输入以下命令: $ git config --global credential.helper 'cache --timeout=3600'

将缓存设置为在1小时后超时(设置以秒为单位)

- Alexei

0

这是对我有效的方法:

在项目的 git 配置文件(.git/config)中添加一个用户名(但不要添加密码)。

查找类似于以下内容的行:

url = https://github.com/magit/magit.git 

(除非是你的仓库来源而不是 magit 的)

并在网址中添加你的用户名。 在 Github 上,无论使用哪个用户名都无所谓。 只需随意编一个即可。

url = https://batman@github.com/magit/magit.git

附注 - 如果您想遵循此问题的接受答案,只需在用户名后添加密码或PAT和冒号,然后完成 url = https://batman:ghp_123456789409234532843@github.com/magit/magit.git

但如果您不想这样做(稍后解释),请继续:

将此添加到emacs配置文件中:

(add-hook 'magit-process-find-password-functions
            'magit-process-password-auth-source)

因为我已经在使用tramps,并且已经保存了ssh密码,所以我已经有一个名为~/.authinfo的文件。如果你没有,请尝试添加一个?或者尝试使用tramps看看它是否出现了?

然后在其中添加这一行。

machine github.com login batman password ghp_123456789409234532843

我猜想这个文件中虚构的登录名必须与git配置中虚构的用户名匹配。对我来说,这实际上是可行的,没有在authinfo中添加登录信息,只需添加machine github.com password ghp_123456789409234532843,但如果你有多个github账户和PATs,我希望添加登录信息可以每次获取正确的账户PAT。


被大多数人接受的答案https://dev59.com/voPba4cB1Zd3GeqPnROR#25675158可能是这个问题中大多数人应该做的事情。

然而,我正在使用通过tramp连接树莓派,并且树莓派处于不加密的桌子上,因此我不放心在上面留下github PAT - 这就是我通过duckduckgo搜索找到这个问题的原因。

我的开发机器是加密的。希望这样,如果有人从目标机器中取出SD卡,他们将无法使用它来攻击我的Github账户。

我需要回答的大部分内容都在https://emacs.stackexchange.com/questions/41616/how-to-save-remote-repo-credentialshttps://emacs.stackexchange.com/questions/40994/using-auth-source-with-magit-and-bitbucket(还有Tarsius的帮助)中。但我仍然在这里按步骤添加了它。


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