gitee ssh 抽风了嘛

2021-10-16 23:46:31 +08:00
 Wanerlove

上个月还好好的,今天 push 一下提示 ssh 无权限

git@gitee.com: Permission denied (publickey).
fatal: Could not read from remote repository.

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

你们 gitee 还能正常使用嘛

2993 次点击
所在节点    程序员
17 条回复
proxychains
2021-10-17 00:08:55 +08:00
我配置了多私钥,vps,github 都能用,gitee 一直 permission denied (public key)
离谱
Wanerlove
2021-10-17 00:13:15 +08:00
@proxychains gitee 确实辣鸡,同样的这对公私钥,push 到 GitHub 上就能用,我真是想不通
chengfeng
2021-10-17 00:25:58 +08:00
好像是 openssh 默认不支持 rsa 算法了,可以在 config 文件中加上

PubkeyAcceptedKeyTypes +ssh-rsa

但我不知道为什么 github 没问题,就 gitee 抽风,今天也是被这个恶心了好久

ssh -vT git@gitee.com

可以看到
debug1: Offering public key: (none) RSA SHA256:...k agent
debug1: send_pubkey_test: no mutual signature algorithm
Y29tL2gwd2Fy
2021-10-17 05:37:02 +08:00
国产巅峰 gitcafe 之后再也不想用国内的 git 服务了
是不是暴露年龄了。。。
RangerWolf
2021-10-17 10:42:24 +08:00
@Y29tL2gwd2Fy 是 因为我也知道 gitcafe ...
skiy
2021-10-17 14:09:18 +08:00
@Y29tL2gwd2Fy 可以尝试 GITLAB 技术入股的极狐 https://gitlab.cn ,不过还得再等一两个月。(我已经申请内测成功了,嘿嘿)
skiy
2021-10-17 14:16:15 +08:00
自从上次 README 和 描述中那些正常的中文信息被定义为“非法” 之后,我一直在找国内的替代品,终于等来了 gitlab.cn 。打算以后都将迁移过来了。目前还没公测。社交这块也没做得很好。

在此期间用过 gitea.com (现在限制只能 5 个仓库数了)、工峰、云效和 CODING 。都是社交方面做得不是很好,比如“优秀的项目推荐”,不容易发现优秀的项目。

另外,楼主的这种情况我在 gitee 见过,不用处理也解决了。云效这边见过,最后解决方案我记下来了。

只要在 .ssh/config 添加,即可解决:

Host *
PubkeyAcceptedKeyTypes=+ssh-dss
proxychains
2021-10-17 15:05:45 +08:00
@chengfeng newbee,gitee 能用了.感谢大佬
Wanerlove
2021-10-17 15:15:10 +08:00
@skiy 好的,非常感谢
Kobayashi
2021-10-17 17:27:27 +08:00
@chengfeng 基本是正确的。严格来说不是 RSA 被废弃,RSA 公钥仍然安全,废弃的只是认证过程中的 ssh-rsa 签名格式,或者说哈希算法。

自从 OpenSSH 7.2,rsa-sha2-* 取代 ssh-rsa 作为默认的 ssh host key algorithm 签名算法。8.2 时通知 ssh-rsa 之后将废弃,8.8 正式废弃了 ssh-rsa.

https://security.stackexchange.com/a/226133/203193
> The RFC8332 RSA SHA-2 signature algorithms rsa-sha2-256/512. **These algorithms have the advantage of using the same key type as "ssh-rsa" but use the safe SHA-2 hash algorithms.** These have been supported since OpenSSH 7.2 and are already used by default if the client and server support them.

另外影响的只是 ssh-rsa hash 算法格式,RSA 公钥(即 id_rsa 文件)仍然使用 ssh-rsa 格式。 因为 RSA 公钥不依赖 hash 函数。

https://www.ietf.org/rfc/rfc8332.txt
> Since RSA keys are not dependent on the choice of hash function, the new public key algorithms reuse the "ssh-rsa" public key format as
defined in [RFC4253]:

https://superuser.com/a/1488613/733022
> RSA keys themselves are neither "SHA1" nor "SHA2" - the key format doesn't involve any hash algorithm at all. The private key just consists of two large numbers, and unlike certificates, there is no attached signature.

https://superuser.com/a/1556861/733022
> The key format has not changed. The only thing that changes is the signature format that's sent during each authentication handshake.

---

回归原问题,OpenSSH 8.8 客户端默认不提供 ssh-rsa hash function,而远端服务端不接受非 ssh-rsa 外的 rsa-sha2-*. 协商失败。

目前已知受影响的有 gitee.com, bitbucket.org.

测试方法: ssh -T git@gitee.com -vv 或者 ssh -T git@bitbucket.org. -vv 开启 debug2 级别日志。在结果中检索 'host key algorithms',注意有 2 条匹配,一条客户端的,一条服务端的。

gitee: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519. OpenSSH 服务端没有支持 rsa-sha2-*.
bitbucket 就更狠了: ssh-rsa,ssh-dss. 根本就不支持任何椭圆曲线签名算法。
Rache1
2021-10-17 17:46:38 +08:00
gitee 比 github 还离谱,老是 push 或者 pull 超时,测试机是 HK 的,有时候拉代码完全听天由命
Kobayashi
2021-10-17 18:08:18 +08:00
更正:

- bitbucket 还需要指定 HostKeyAlgorithms +ssh-rsa
- 另外上条回复末尾 bitbucket 不支持椭圆曲线应该是错误的,不能只依据 host key algorithms 判断
Wanerlove
2021-10-17 22:25:27 +08:00
@Kobayashi 受教了,那么我 .ssh/config 文件写入以下内容就可以吗

Host gitee.com
PubkeyAcceptedKeyTypes +ssh-rsa
HostKeyAlgorithms +ssh-rsa

还有什么需要修改的,请再指教一下
knightdf
2021-10-18 08:47:14 +08:00
gitee 这垃圾有用的必要?
forcecharlie
2021-10-18 14:29:47 +08:00
gitee 的 SSH 服务使用 Golang 开发,Golang crypto/ssh 没有支持 rsa-sha2-256 rsa-sha2-512 结果就是 openssh 8.8 无法协商,另外 Golang SSH 还不支持 server-sig-algs 扩展,要解决得同时解决两个问题,CODING 也有这个问题,还有 Gitea,都在等 crypto/ssh 的跟进: https://github.com/golang/go/issues/37278

Github 可能是依然是用的 libssh,但深度定制了。

其中 maxmanuylov 的 fork 是验证可用的: https://github.com/maxmanuylov/crypto/commit/e400208a17e0c73cc54ae5ef8091b060bcd06d21

利益相关:Gitee 前员工,SSH 服务器开发者,CODING 前员工。
qq1340691923
2021-10-19 09:41:52 +08:00
@forcecharlie 大佬
cco
2021-10-19 14:35:05 +08:00
gitee coding 经常遇到这问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/808281

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX