【问题标题】:Develop and host gitlab on the same machine (RasPi)在同一台机器上开发和托管 gitlab (RasPi)
【发布时间】:2016-04-01 05:38:21
【问题描述】:

最近我开始使用 Raspberry Pi 2 来托管一些简单的 webapps 并托管一个 gitlab-server。两者似乎都运行良好,直到我想从 gitlab 克隆一个 repo。 IE。我正在尝试在我的 RasPi2 上克隆一个存储库,该存储库托管在我的 RasPi2 上。我生成了一个 ssh-key 并将其添加到我的 gitlab 帐户中。然后我尝试克隆一个 repo,但我不断收到权限被拒绝错误。

为了清楚起见:每个命令都在我的 RasPi2 上执行;我通过普通台式电脑的 ssh 连接到它。

任何帮助解决这个问题都会很棒,在此先感谢。

【问题讨论】:

  • ssh -v <gitlab server> 说什么?可能,ssh 看不到或接受您密钥的私有部分
  • 在 git-user (git@<gitlab server>) 中使用 ssh 确实有效。克隆存储库得到以下信息:fatal: could not create work tree dir 'RasPi-landing-page'.: Permission denied。 (RasPi-landing-page 是 repo 名称。)
  • 因此是与网络交互无关的客户端问题。我将从在 RPi 上创建一个空的 repo 开始,将 repo 数据从 PC 上的克隆推送到 RPi,然后尝试重置 RPi 上的工作树。好吧 cmets 不适合解释复杂的事情:)

标签: git ssh gitlab raspbian raspberry-pi2


【解决方案1】:

/var/www/html 通常属于与您当前登录不同的用户(例如root),这是问题的根源。所以你要么应该从另一个用户那里行动(使用sudo bash)或者应该把你的repo放在不同的地方,或者应该设置/var/www/html的所有权和权限,以便你的常规ssh会话可以写入文件夹(使用chown 和/或 chmod 用于此)。

对于处理 unix 权限,您可能会发现 this qa 很有用

【讨论】:

  • 我认为你上面的步骤真的行不通。如果我在我的 RasPi 上的某个地方创建了一个 repo,然后尝试在我的工作电脑上克隆该 repo,我的工作电脑如何知道从哪里克隆?因为我从来没有在 gitlab 上注册过那个 repo。不管怎样,我在这里和那里尝试了一些东西,看起来我真的到了某个地方。我目前可以在我的 RasPi 上进行克隆,该 RasPi 托管在我的 RasPi 上。但是,我想将它克隆到 /var/www/html 中,它要求输入 git 帐户的密码,该密码应通过 ssh 进行身份验证。我现在有点迷失在迷宫中......
  • 我根据上面的答案开始搜索,发现了问题:尝试克隆到/var/www时,我使用了sudo(因为普通用户在那里没有写权限)。但是,git 命令会在 /root/.ssh 而不是 ~/<username>/.ssh 中查找 ssh-keys。因此,我需要一个 ssh 密钥作为 root。我通过使用sudo cp ~/<username>/.ssh/id_* /root/.ssh/ 复制用户的 ssh 密钥来修复它。从那里我可以使用 sudo git 和已经注册的 ssh-keys。
  • 很高兴得知您发现了问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2020-07-22
  • 2012-01-04
相关资源
最近更新 更多