繁体   English   中英

git 从哪里检索凭证信息?

[英]where does git retrieve credential information from?

我用 ssh 克隆了一个 repo,做了一些更改并尝试推送,但我得到了

remote: Permission to repo.git denied to <account_1>.

我注意到account_1不是我一直在使用的 user_id。 用户id很熟悉,好像是很久以前遗留下来的

这真是一个惊喜,因为我注意到我的其他现有存储库似乎工作正常。

我检查了git config -l但帐户用户电子邮件都很好。

有谁知道可能会发生什么?

Git没有。

我已经用 ssh 克隆了一个 repo ...

它是处理授权和凭据的ssh Git 没有内置 ssh:Git 只运行ssh。 1这意味着您只需运行 ssh 即可诊断此问题。

使用 SSH 通过git login 对服务器进行身份验证是很常见的——因为 GitHub 这样做了——就像你将通过运行ssh -Tvvv git@github.com看到的调试输出ssh -Tvvv git@github.com 当你做这种事情时,GitHub 决定你是谁的方式是检查你发送的密钥。 如果您有多个不同的密钥并希望将一个特定的密钥发送到 GitHub(或任何其他站点),您可以使用这种详细测试查看您实际发送的是哪个密钥。 像这样重复-v三次-Tvvv相当于-T -v -v -v -v——将 ssh 调试输出的详细程度提高到最大。 -T禁用 pty 分配,这在此处很合适,因为 GitHub 无论如何都不允许您运行 shell。

要了解如何配置您自己的 ssh,请参阅您特定系统的 ssh 文档,因为这会有所不同。 通常,它们中的大多数使用主目录中或下方的目录(或文件夹,如果您更喜欢该术语)来存储配置信息和密钥:例如$HOME/.ssh$XDG_CONFIG_HOME/.config/ssh


1 Git确实内置了 libcurl,但 https 身份验证更复杂,因此通常 Git 依赖于特定于操作系统的帮助程序。 无论出于何种原因,Https 身份验证都比 ssh 多得多; 对于 ssh,您通常只说在此系统上使用此用户名,并且可以通过一次 ssh 调用提供所有参数。 使用 libcurl,它变得……更加混乱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM