我需要为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
答案 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)
只有密钥密码需要存储在钥匙串中才能解决问题,否则会有效。