【发布时间】:2021-06-14 03:00:26
【问题描述】:
错误信息
添加 GitLab 服务器用户的 ssh 密钥和托管在 Tor 上的存储库后,执行了一个测试,试图通过 Tor 克隆私有存储库(添加了测试用户)。尝试使用以下命令进行克隆:
torsocks git clone git@some_onion_domain.onion:root/test.git
返回错误:
正在克隆到“测试”... 1620581859 ERROR torsocks[50856]:连接 拒绝 Tor SOCKS(在 socks5.c:543 的 socks5_recv_connect_reply() 中) ssh:连接到主机 some_onion_domain.onion 端口 22:连接 拒绝致命:无法从远程存储库读取。
请确保您拥有正确的访问权限和存储库 存在。
GitLab SSH 克隆验证
但是,为了验证测试用户可以使用 ssh 访问权限,克隆是在没有使用 tor 的情况下使用命令验证的:
git clone git@127.0.0.1:root/test.git
成功返回:
克隆到“测试”...远程:枚举对象:3,完成。偏僻的: 计数对象:100% (3/3),完成。远程:总共 3 个(增量 0),重复使用 0 (delta 0),pack-reused 0 接收对象:100% (3/3),完成。
服务器端假设
- 我的第一个猜测是这是一个服务器端问题,与
https的缺乏有关,在/etc/gitlab/gitlab.rb文件中的以下设置中:
external_url 'http://127.0.0.1'
但是设置 external_url 'https://127.0.0.1 需要 https 证书,例如来自 Let's encrypt,似乎没有为洋葱域提供。
客户端假设
- 我的第二个猜测是,在运行
torsocks命令的测试用户端,与某些SOCKS设置相关的客户端问题不正确,类似于w.r.t. 的问题。似乎描述为here 的SOCKS 5协议。
问题
所以我想问一下:
当用户尝试通过 tor 克隆 repo 时,我该如何解决 connect to host some_onion_domain.onion port 22: Connection refused 错误?
【问题讨论】: