Git 在使用 SSH URL 时要求输入密码,而 ssh 则不会

Ray*_*ton 5 ssh git

我有三台服务器(两台 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 Breaks 中克隆(这可能是巧合,它只工作了两次)。

CI 与 git 服务器的连接没有问题。

使用 ssh -v 输出显示 ssh 使用正确的公钥。

因此在站点服务器上运行以下命令

ssh git@10.10.10.10 
Run Code Online (Sandbox Code Playgroud)

连接(然后断开)但是

git clone git@10.10.10.10:somerepo.git
Run Code Online (Sandbox Code Playgroud)

询问 git 用户的密码。

站点服务器有一个在 gitlab 上注册的用户(带有 ssh 密钥)。

多次调用的示例输出:https://pastebin.com/QH0AntK7

Ray*_*ton 0

为 @LazyBadger 创建日志后,我意识到它仅在使用 sudo 运行时才会失败,因为它使用不同的 ssh 密钥。

我已将 root 用户 ssh 密钥包含在 git 服务器上的站点服务器帐户中,现在它可以工作了。

  • 为什么要以 root 身份运行 git? (4认同)