基本问题是,每次执行git pull时,都会要求输入密码。不幸的是,情况有点复杂,所以在我尝试解释时请与我一起露出。
我有2台服务器设置。 Server1托管git远程源。 server1和server2都从该server1源启动到其可通过Web访问的文件夹中。
两个服务器上同样有两个用户:管理员用户和文件用户。 admin用户具有以root身份运行的能力,文件用户拥有这些文件。两个用户属于同一组。文件用户和组拥有Web可访问文件,在server1上拥有远程源文件。
server1admin,server2admin和server2file用户已经使用公钥设置为ssh作为server1file用户,如果我尝试直接从命令行ssh,一切都按预期工作。
在server1上,git源是/git_repos/repo.git
在server2上,git源是ssh://server1file@server1/git_repos/repo.git
当我以server2admin身份登录server2并执行git pull时,我被问到server1file用户的密码,我不知道为什么。
奇怪的是,如果我将server2上的origin更改为ssh://server1admin@server1/git_repos/repo.git,我会被要求输入server1admin用户的密码。
关于为什么需要输入密码我应该注意什么?
答案 0 :(得分:0)
尝试在服务器2上运行命令ssh-add
答案 1 :(得分:0)
虽然我不确定原因,但将server1file和server1admin用户添加到server2file用户的authorized_keys文件修复了该问题。