如何在 Redhat 上为 apache 用户创建 ssh 密钥?

Jos*_*ton 5 ssh redhat mercurial ssh-keys apache-2.2

正如问题所问,如何在 Redhat 上为用户 apache 生成 ssh 密钥?

我的用例是我们有一个在 apache 用户下运行的 mercurial 服务器。我们还有几个 Web 服务器集群,我们需要手动登录并从中提取。理想情况下,我们想要做的是让 mercurial 服务器将所有更改推送到集群中的所有网络服务器。为此,我们想使用 ssh,因为在每个 Web 服务器上设置 http mercurial 服务器似乎工作量太大,而且太繁重。

我试图做的是以下内容:

> sudo mkdir /var/www/.ssh
> sudo chown -R apache:nobody /var/www/.ssh
> su - apache -c "ssh-keygen -t rsa"
    This account is currently not available.
Run Code Online (Sandbox Code Playgroud)

我在别处找到了上面的命令,但我只能假设 Redhat 与上面使用的任何发行版都有不同。有没有办法为 apache 用户生成 ssh 密钥?

Jos*_*ton 9

好吧,我离得不远了,我找到了一个很好的资源,可以逐步完成确切的步骤。

http://www.boredworkers.com/2009/08/24/script-tips-ssh-key-for-apache/

> sudo mkdir /var/www/.ssh
> sudo chown -R apache:nobody /var/www/.ssh
> sudo -u apache ssh-keygen -t rsa
Run Code Online (Sandbox Code Playgroud)

我想我需要调查要使用的正确开关,而不是依赖博客文章。

  • 仅供参考,我假设您的 /var/www 可供全世界使用。我强烈建议不要将您的私钥放在该目录中。没有理由必须在 /var/www 下。此外,没有理由为您正在执行的同步操作使 apache 用户过载。我会使用一个不同的帐户,它也可以读取文件甚至使用 root。如果您使用 ssh 推送到每个服务器,您需要做的就是将您的公钥添加到您推送到的帐户的 authorized_keys 中。 (3认同)
  • @ScottZ 我正在执行此操作的网络服务器仅在专用网络上,并且没有设置为提供 HG 以外的任何服务。我不相信 .ssh 已暴露,但我会确认这一点,谢谢。不幸的是,apache 是执行推送的用户,这是从外部推送触发的。它是 ssh 到本地帐户,但据我所知,由于它正在启动 ssh,因此密钥必须由 apache 提供。如果有办法让 apache 执行 ssh,我会接受的! (3认同)