[英]Making www-data push to local git repo
因此,我正在創建一個系統,該系統管理位於特定文件夾中的所有drupal網站(可以在此文件夾中創建新網站)。
下一步是創建一種方法,允許用戶將網站還原為以前的版本。
我的解決方案? 創建一個本地“ git服務器”,並針對我的系統上執行的每個操作(例如:更新/安裝模塊,升級核心等),創建該站點的新版本。
我創建了一個“ git”用戶,該用戶負責在/~/gitrepos/
上創建存儲庫。 對於每個新網站,我在apache用戶(www-data)中使用sudo -u git
來運行mkdir
和git init --bare
。 我目前能夠創建新文件夾並在這些文件夾上初始化git存儲庫。
但是,當我嘗試將網站更改推送到那些存儲庫時,出現“權限被拒絕”。
當檢測到新站點時,我將執行以下操作:
sudo -u git
]
mkdir
和git init
git init
git add *
git commit -m 'msg'
git remote add origin ssh://git@localhost/path/to/repo/
git push -u origin master
現在,我一直處於此步驟,因為我總是收到“權限被拒絕”。
有什么方法可以將更改推送到本地“ git服務器”而無需進行身份驗證?
或者,我應該創建哪些ssh鍵來使www-data將更改推送到本地“ git服務器”?
如果有人可以通過逐步的方式來設置本地“ git服務器”(www數據用戶可以將其推送到其中)的話,那我真是迷失了, 那就太好了 。
注意:www-data的主目錄是/var/www/
,因此在此目錄中存儲ssh-keys不是一個好主意
是的,在問到這里之前,我已經花了至少4個小時試圖弄清楚這一點。
我嘗試遵循的一些資源:
我引用“ git server”的原因是因為沒有git server這樣的東西。
引用http://blogs.gurulabs.com/aaron/2008/11/setup-a-git-repository.html的內容 :
換句話說,沒有“ git服務器”和“ git客戶端”之類的東西。 Git由文件系統開發人員在開發時考慮到文件系統屬性。 因此,相反,我們有一個稱為“來源”的遠程Git存儲庫和一個本地Git存儲庫(...)
假設:
www-data
主目錄為/var/www/
gituser
腳步:
要使www-data
用戶無需輸入密碼即可將更改推送到git repo,只需:
www-data:~$ ssh-keygen -t rsa
enter
鍵(將密碼保留為空白) /home/gituser/.ssh/authorized_keys
gituser:~$ touch ~/.ssh/authorized_keys
gituser:~$ chmod 0600 ~/.ssh/authorized_keys
gituser:~$ cat /var/www/.ssh/id_rsa.pub >> /home/gituser/.ssh/authorized_keys
其背后的想法是將www-data
的ssh-key添加到gituser
的“可信”鍵中。 之后, www-data
將能夠通過ssh連接到服務器並以gituser
身份驗證,而無需鍵入密碼。
請記住,git需要通過ssh訪問服務器(至少在我所在的環境中)。
這可能會有所幫助: http : //www.linuxproblem.org/art_9.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.