我有三台服务器(两台 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
为 @LazyBadger 创建日志后,我意识到它仅在使用 sudo 运行时才会失败,因为它使用不同的 ssh 密钥。
我已将 root 用户 ssh 密钥包含在 git 服务器上的站点服务器帐户中,现在它可以工作了。