繁体   English   中英

仅当从远程访问时无法推送到 Git 存储库

[英]Can't push to Git Repository only when accessing it from remote

我遇到了 Git 的一个非常特殊的问题。 我在 Gitlab 服务器上有一个存储库,我通常在办公室的工作计算机(运行 Ubuntu)上处理它。 在那里,我设置了一个私钥/公钥,一切正常。

现在奇怪的部分是,当我 ssh 从家里进入我的工作计算机并执行拉取或推送或任何其他需要连接到 Gitlab 服务器的 Git 命令时,我得到一个错误,我得到一个错误,

$ git push
git@collaborating.tuhh.de: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

根据我的理解,如果我将 ssh 插入我的工作计算机并在 shell 中执行命令,那应该就像我直接坐在那台计算机前面运行相同的命令一样,不是吗?

有谁知道,为什么会出错? 欢迎任何想法!

Ssh 是或者可以是相当复杂和花哨的。 如果您使用的是 ssh 代理,请记住该代理将提供密钥,除非它不提供。 1如果您不使用代理,ssh 配置将始终提供密钥。

使用ssh-add -l查看代理可以看到的密钥。 检查你的~/.ssh/config文件,看看你告诉 ssh 发送什么键。 如果需要,请使用ssh -v或多个-v选项(尽管通常一个就足够了),以观察您的 ssh 客户端实际上正在尝试哪些键:

ssh -Tv git@github.com

例如显示我的 ssh 客户端向 github.com 提供我个人的 GitHub 特定 RSA 密钥。

在 Git-for-Windows 上(这里不是这种情况,但让我们将它包含在其他查看器中),在确保ssh -Tv...有效之后,确保 Git 使用的是 Windows 原生 Z1787D7646404C5D98A977E。 请参阅FlimmHow can I run git push/pull commands with SSH 详细模式的回答? 正如评论中提到的kiner_shah


1我意识到这本身是无益的。 这里的问题是“它没有”可能有很多原因。 这就是-v技巧派上用场的地方。 请注意,配置中的IdentitiesOnly yes意味着仅使用配置中列出身份,尽管-i选项无论如何都会添加。

暂无
暂无

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

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