如何在 Linux 中为“apache”用户添加 SSH key ?
背景
我正在尝试向 github 添加一个服务 Hook ,以便在我推送到我的仓库后通知 URL。我设置了以下 php 页面:
<?php `git pull origin master`;
但是我得到以下输出:
sh: git: Permission denied
这是因为我为 github 访问生成的 key 是由我的“root”用户生成的。但是,当我从 php 执行命令时,运行它的是“apache”用户。
因此 key 不对应,拒绝 pull 权限。
由于我无法从终端切换用户以将 key 生成为“apache”,因此我不太确定该怎么做。任何人都可以提出解决方案吗?
最佳答案
您可能需要将根生成的 key 复制到您的 apache 用户的 .ssh 目录中。
假设 apache 的 homedir 是 /var/www(检查/etc/passwd)并且命名的 key 是 id_rsa-git :
mkdir -p /var/www/.ssh/
cp /root/.ssh/id_rsa-git /var/www/.ssh/id_rsa
无需复制公钥。
注意:默认使用的 key 是 id_rsa 或 id_dsa。您可以更改复制 key 的名称以匹配此名称。
您还可以更改 id_rsa key 和 .ssh 目录的所有权:
chown -R apache:apache /var/www/.ssh
chmod 0700 /var/www/.ssh
chmod 0600 /var/www/.ssh/id_rsa
关于php - 为 'apache' 用户生成 SSH key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7306990/