繁体   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