在CentOS上为Apache用户创建SSH密钥

时间:2014-02-06 16:56:46

标签: php git apache ssh centos

我需要为Apache用户'nobody'生成SSH密钥。

我正在尝试让PHP脚本执行一些Git命令从BitBucket(http://brandonsummers.name/blog/2012/02/10/using-bitbucket-for-automated-deployments/)中提取回购

但是我遇到麻烦,因为PHP脚本通过apache运行,而用户似乎是'没人'。因此它无法通过SSH连接。如果我通过命令行运行脚本,Apache用户似乎是“root”并且工作正常。

php脚本需要执行Git并使用SSH访问BitBucket,但是我在服务器上的SSH密钥是用户'root'。

如何为非交互式用户创建公共和私有SSH密钥:nobody?

root@server [~]# lsof -i | grep :http
httpd     16942        nobody    5u  IPv4 23590964      0t0  TCP *:http (LISTEN)
httpd     16942        nobody    6u  IPv4 23590970      0t0  TCP *:https (LISTEN)
httpd     16944        nobody    5u  IPv4 23590964      0t0  TCP *:http (LISTEN)
..... and more

1 个答案:

答案 0 :(得分:3)

mkdir /nobody/.ssh
chown nobody -R //nobody/.ssh
chmod 777 /nobody/.ssh
ssh-add /nobody/.ssh/id_rsa

sudo -u nobody ssh-keygen
(when prompted specify save path in /nobody/.ssh)

只有密钥密码需要存储在钥匙串中才能解决问题,否则会有效。