[英]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.