Ssh

Git 在使用 SSH URL 時要求輸入密碼,而 ssh 不會

  • August 10, 2021

我有三台伺服器(兩台 ubuntu 16.04,一台 mac mini)和幾台 macbook。

一台伺服器 ubuntu 用於 gitlab,另一台是內部站點伺服器。mac mini 正在執行 CI。

最近 gitlab 伺服器被另一個 gitlab 伺服器取代。(更換了硬體,相同的 IP 地址和主機名,新軟體,新 ssh 密鑰,所有其他硬體(其他伺服器和筆記型電腦)都像以前一樣使用 ssh 密鑰)。

任何 Macbook 都可以通過 SSH 連接到任一伺服器(使用伺服器上使用者的使用者名/密碼),並且它們可以使用 Git 通過公鑰使用 git 伺服器複製、推送等。

站點伺服器可以通過 SSH(通過公鑰)進入 git 伺服器,但是一旦出現歡迎消息,連接就會終止。站點伺服器不能通過公鑰使用 git,因為 Git 會提示輸入密碼,除非它不使用並且使用持續一段時間的公鑰工作,它只會在使用者文件目錄中使用測試開始工作,如果我嘗試/var/www再次在目錄 git break 中複製(這可能是巧合,它只工作了兩次)。

CI 與 git 伺服器連接沒有問題。

使用 ssh -v 輸出顯示 ssh 正在使用正確的公鑰。

所以在站點伺服器上執行以下命令

ssh git@10.10.10.10 

連接(然後斷開)但

git clone git@10.10.10.10:somerepo.git

詢問 git 使用者的密碼。

站點伺服器有一個在 gitlab 上註冊的使用者(使用 ssh 密鑰)。

多個呼叫的範例輸出:https ://pastebin.com/QH0AntK7

在為@LazyBadger 創建日誌後,我意識到它僅在使用 sudo 執行時才會失敗,因為它使用了不同的 ssh 密鑰。

我已經在 git 伺服器上的站點伺服器帳戶中包含了 root 使用者 ssh 密鑰,現在它可以工作了。

首先要測試的是從站點伺服器到 git 伺服器的基於密鑰的 SSH 是否有效。根據你的描述,好像沒有。在您執行 ssh 之前,您的站點伺服器上的使用者的cat公鑰是否存在於使用者?git``~/.ssh/authoried_keys

引用自:https://unix.stackexchange.com/questions/398245