簡體   English   中英

在apache虛擬主機上設置git公鑰

[英]setting up git public key on apache virtual host

我有一個運行CentOS 7 Apache服務器的VPS。 我的網站位於/var/www/domain.com目錄中,設置git時遇到問題。

我想使用公共密鑰連接到我的git存儲庫,但我不斷

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

每當我嘗試運行任何類型的git命令,提取,提取,克隆...

我在/var/www/.ssh/id_rsa.pub設置了.ssh公鑰,使用

sudo ssh-keygen

我將密鑰添加到BitBucket,但是無論我嘗試什么,都會遇到錯誤。

有什么建議么?

PS分配給/var/www/.ssh的所有者和組是apache:apache,該文件夾以及=> /var/www/.ssh/下的所有文件的權限為0700

另外,我確實在/var/www/.ssh/id_rsa中有一個私鑰,而我的/var/www/.ssh/config文件如下所示:

Host bitbucket.org
 IdentityFile /var/www/.ssh/id_rsa

公鑰應該轉到BitBucket,而私鑰很可能應該轉到默認位置~/.ssh/id_rsa

請注意,如果您覆蓋那里的任何現有私鑰,則將失去對最初有權訪問的那些系統的訪問權限。 更好地生成匹配的公鑰或將其提供給~/.ssh/id_rsa已存在的任何~/.ssh/id_rsa

如果您確實想將自定義私鑰與其默認位置分開存儲,則必須在git設置中對其進行自定義。

總結一下:

  • 確保您的私鑰存儲在~/.ssh/id_rsa
  • 將匹配的公鑰發送到BitBucket。
  • 您可以將公用密鑰的副本存儲在~/.ssh/id_rsa/pub ,以確保安全。 但是不會使用。
  • 確保為以下目錄正確設置特權:
    • 您的主目錄( ~
    • ~/.ssh目錄
    • ~/.ssh/id_rsa
    • 以及~/.ssh下的其他幾個重要文件。

如果權限損壞,可以使用以下腳本來修復權限:

chmod go-w ~
[[ ! -d ~/.ssh ]] && mkdir ~/.ssh
chmod 700 ~/.ssh

[[ -f ~/.ssh/id_rsa ]] && chmod 600 ~/.ssh/id_rsa
[[ -f ~/.ssh/id_rsa.pub ]] && chmod 640 ~/.ssh/id_rsa.pub
[[ -f ~/.ssh/authorized_keys ]] && chmod 640 ~/.ssh/authorized_keys

chown ${USER}: ~
chown -R ${USER}: ~/.ssh

在大多數情況下,這應該可以解決與特權相關的問題,因為如果設置不正確,ssh將拒絕工作。 如果采用其他方法,則可能會使系統容易受到攻擊,即使ssh仍無法正常工作,您的私鑰也可能因攻擊而損壞或被盜。

確保示例腳本未從其原始版本進行修改(其他人未進行stackoverflow編輯),除非已正確記錄了為什么進行編輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM