2014-02-06 44 views
1

我需要爲Apache用戶'nobody'生成SSH密鑰。在CentOS上爲Apache用戶創建SSH密鑰

我試圖讓一個PHP腳本執行一些Git命令從到位桶拉回購(http://brandonsummers.name/blog/2012/02/10/using-bitbucket-for-automated-deployments/

但是我有麻煩的PHP腳本運行時通過Apache和用戶似乎是「沒人」。因此它無法通過SSH連接。而如果我通過命令行運行腳本,Apache用戶似乎是「root」並且工作正常。

PHP腳本需要使用SSH執行Git和接入到位桶,但是SSH密鑰我在服務器上是用戶「根」。

如何爲非交互式用戶創建公用和私用SSH密鑰:nobody?

[email protected] [~]# 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

你能告訴你的SSH客戶端使用密鑰嗎?如果你只是運行ssh,你可以通過它傳遞-i參數來指定一個標識。然後,您可以生成密鑰並將其放置在用戶有權訪問的位置。 –

+0

EHM ......這不是SSH客戶端,這是Git的客戶端 – Martin

+0

也許創建一個/home/nobody/.ssh目錄,在它的id_rsa文件? IDK的。 – neubert

回答

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) 

問題就只要一個按鍵密碼需要被存儲在鑰匙串,否則它的工作原理。