Cal*_*leb 14 git arch-linux server-setup gitlab
我正在尝试在全新干净的服务器上设置 gitlab (6.5.1)。似乎一切正常,但 git 无法推送到任何项目。按照来自新创建的项目页面的命令并通过 ssh 推送到远程给出:
$ git push -u origin master
fatal: Could not read from remote repository.
Please make sure you have the correct access
rights and the repository exists.
Run Code Online (Sandbox Code Playgroud)
这似乎是一个相当普遍的问题。不幸的是,它似乎有许多潜在的原因,但似乎没有一个是匹配的。从 旧版本的问题 3424和其他各种在线资源中,我看到并检查了以下建议:
剩余的 ssh 密钥
这是一个干净的设置,没有剩菜。我的密钥已正确添加到授权密钥文件中,并且是唯一列出的密钥。
使用调试日志运行 ssh 会显示与 Ruby 环境变量相关的错误。
我的很干净。SSH 调试显示连接成功。认证握手一切正常,那么输出到此结束:
debug1: Sending command: git-receive-pack 'username/reponame.git'
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Run Code Online (Sandbox Code Playgroud)gitlab-shell 环境的问题。
与具有上述相同错误消息的许多其他人不同,我的 gitlab-shell 检查脚本返回了一个干净的健康清单:
% sudo -u gitlab -H ~gitlab/gitlab-shell/bin/check
Check GitLab API access: OK
Check directories and files:
/var/lib/gitlab/repositories: OK
/var/lib/gitlab/.ssh/authorized_keys: OK
Test redis-cli executable: redis-cli 2.8.5
Send ping to redis server: PONG
Run Code Online (Sandbox Code Playgroud)重启 {unicorn,sidekiq,redis}
重新启动一项或多项服务可解决此问题的报告似乎不适用于此处。这不是重新引导守护程序修复的间歇性问题。
回购没有被物理创建
但它是。每次都是第一次,每次~gitlab/repositories/username/reponame.git
都会创建裸 git repo,并且似乎具有正确的权限。
Gitlab-shell 无法与 API 服务器通信,因为 A) DNS 问题,B) 错误的 ip/端口/接口绑定 C) 没有/没有尾部斜杠。
检查脚本说 API 访问没问题。
我没有运行 nginx,因此与此相关的默认 ip 绑定问题是不适用的。
我都试过*:8080
,并127.0.0.1:8080
在监听值unicorn.yml
。
除此之外,我已经尝试了 localhost、127.0.0.1 和完全限定的域名(DNS 解析很好)的各种迭代,无论有没有尾部斜杠shell.yml
都无济于事。我还尝试将它直接连接到端口 8080 上的 unicorn 服务器,而不是端口 80 上的 Apache SSL/代理主机。似乎没有任何区别。我的证书不是自签名的,并且在浏览器上运行良好,但我self_signed_cert: true
还是尝试进行设置。没有。
报告的 git 路径错误,从 gitlab 用户主页添加完全限定路径。
如果 gitlab-shell 没有做一些猴子业务来纠正这个问题,这似乎是一个合法的建议,但我尝试更改git remote add origin gitlab@server:username/reponame.git
为 ``git remote add origin gitlab@server:repositories/username/reponame.git` 无济于事。同样的错误。
这似乎是一连串建议的解决方案,但似乎没有一个是正确的。注意我可以推送 http。登录提示接受我的 ldap 用户名和密码并接受推送。这只是尝试使用 SSH 时出现的问题。仅测试 ssh 登录部分ssh -T gitlab@server
工作正常。
还有什么可能导致此错误?
如何在 gitlab 中调试这样的问题?中似乎根本没有任何相关性~gitlab/gitlab-shell/gitlab-shell.log
。在哪里可以找到更多信息丰富的错误消息?
由于此 SSH 调试消息,我很确定您在 SSH 和系统之间存在配置问题:
client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
Run Code Online (Sandbox Code Playgroud)
您在成功验证后立即收到此消息,并且没有来自 bash 的消息,这意味着登录后没有启动任何程序。
如果您为 gitlab 用户设置了正确的设置,请查看您的 passwd 文件:
gitlab:x:1011:1012:GitLab,,,:/path/to/gitlab:/bin/bash
Run Code Online (Sandbox Code Playgroud)
验证 bash 在配置文件中没有奇怪的东西,例如
然后上一层:Gitlab-shell 验证/path/to/gitlab/.ssh/authorized_keys有如下配置:
command="/path/to/gitlab/gitlab-shell/bin/gitlab-shell key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa A...
Run Code Online (Sandbox Code Playgroud)
使用gitlab 用户拥有的/path/to/gitlab/gitlab-shell/bin/gitlab-shell和可执行文件。
您可以通过启动以下命令来确保 gitlab-shell 完全可操作:
# /path/to/gitlab-shell/bin/gitlab-shell
Welcome to GitLab, Anonymous!
Run Code Online (Sandbox Code Playgroud)
如果远程登录实际工作并正确连接到 gitlab-shell,您应该收到相同的欢迎消息(但与您用于登录的 ssh 密钥的用户匹配),如果您尝试远程登录,它会将您转储出去。
$ ssh gitlab@server
Welcome to GitLab, <your user's full name>!
Connection to <server> closed.
Run Code Online (Sandbox Code Playgroud)
这里没有消息可能表明 ssh 根本没有将您连接到 gitlab。
最后,检查您的 gitlab-shell 配置(config.yml)并验证是否:
http_settings:
# trailing slash is important
gitlab_url: "https://remote_server/"
ca_file: /path/to/webserver/certificate.crt
Run Code Online (Sandbox Code Playgroud)
最终:
self_signed_cert: false
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38884 次 |
最近记录: |