【问题标题】:GIT Pull from Remote Origin Ignoring SSH Keys - Asks For PasswordGIT 从远程源拉取忽略 SSH 密钥 - 要求输入密码
【发布时间】:2019-06-03 20:39:47
【问题描述】:

基本问题是每次执行 git pull 都会要求输入密码。

服务器

我有一个 2 台服务器设置。 Server1 托管 git 远程源。 server1 和 server2 都从该 server1 源拉取到它们的 Web 可访问文件夹中。

用户

两台服务器上都有相同的 2 个用户:一个管理员用户和一个文件用户。 admin 用户能够以 root 身份运行,而文件用户拥有文件。两个用户属于同一个组。文件用户和组拥有可通过 Web 访问的文件,并且在 server1 上拥有远程源文件。

SSH

server1admin、server2admin 和 server2file 用户已设置为 ssh,使用公钥作为 server1file 用户,如果我尝试直接从命令行 ssh,一切正常。

GIT

在 server1 上,git 源是 /git_repos/repo.git

在 server2 上,git 源是 ssh://server1file@server1/git_repos/repo.git

问题,改写

当我以 server2admin 身份登录 server2 并执行 git pull 时,我被要求输入 server1file 用户的密码,我不知道为什么。

奇怪的是,如果我将 server2 上的源更改为 ssh://server1admin@server1/git_repos/repo.git,我会被要求输入 server1admin 用户的密码。

关于我应该看什么来弄清楚为什么需要密码的任何想法?

【问题讨论】:

  • 第一步是检查 server1 上的.ssh/authorized_keys。在 server2 上,执行 ssh server1file@server1 无需登录即可工作?
  • @RandolphCarter 是的,在 server2 上以两个用户的身份登录,ssh server1file@server1 成功。我最终添加了一些更多的 authorized_keys 条目,允许 server1 用户 ssh 作为 server2file,一切都开始工作了。希望我知道原因,但我很高兴它起作用了。

标签: linux git authentication ssh remote-access


【解决方案1】:

尝试在服务器 2 上运行命令 ssh-add

【讨论】:

    【解决方案2】:

    虽然我不知道为什么,将 server1file 和 server1admin 用户添加到 server2file 用户的 authorized_keys 文件解决了这个问题。

    【讨论】: