簡體   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