在apache虚拟主机上设置git公钥

时间:2016-02-04 22:25:57

标签: git apache ssh vps public-key

我有一台运行CentOS 7 Apache服务器的VPS。我的网站位于/var/www/domain.com目录中,我在设置git时出现问题。

我想使用公钥连接到我的git存储库而且我一直在

@MatchingResultCount1 > 0

当我尝试运行任何类型的git命令时,fetch,pull,clone ...

我使用

WITH (NOLOCK)中设置.ssh公钥
Permission denied (publickey).
fatal: Could not read from remote repository.

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

我将密钥添加到BitBucket,但无论我尝试什么,我都会收到错误。

有什么建议吗?

P.S。分配给/var/www/.ssh的所有者和组是apache:apache with 文件夹上的0700权限和=>下的所有文件/var/www/.ssh /

另外,我在/var/www/.ssh/id_rsa中有一个私钥,而我的/var/www/.ssh/config文件看起来像这样:

/var/www/.ssh/id_rsa.pub

1 个答案:

答案 0 :(得分:0)

应该转到BitBucket的是公钥,而私钥应该最有可能转到默认位置~/.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)进行修改,除非已正确记录编辑发生的原因。