上个月还好好的,今天 push 一下提示 ssh 无权限
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
你们 gitee 还能正常使用嘛
1
proxychains 2021-10-17 00:08:55 +08:00
我配置了多私钥,vps,github 都能用,gitee 一直 permission denied (public key)
离谱 |
2
Wanerlove OP @proxychains gitee 确实辣鸡,同样的这对公私钥,push 到 GitHub 上就能用,我真是想不通
|
3
chengfeng 2021-10-17 00:25:58 +08:00 3
好像是 openssh 默认不支持 rsa 算法了,可以在 config 文件中加上
PubkeyAcceptedKeyTypes +ssh-rsa 但我不知道为什么 github 没问题,就 gitee 抽风,今天也是被这个恶心了好久 ssh -vT [email protected] 可以看到 debug1: Offering public key: (none) RSA SHA256:...k agent debug1: send_pubkey_test: no mutual signature algorithm |
4
Y29tL2gwd2Fy 2021-10-17 05:37:02 +08:00 via Android
国产巅峰 gitcafe 之后再也不想用国内的 git 服务了
是不是暴露年龄了。。。 |
5
RangerWolf 2021-10-17 10:42:24 +08:00
@Y29tL2gwd2Fy 是 因为我也知道 gitcafe ...
|
6
skiy 2021-10-17 14:09:18 +08:00
@Y29tL2gwd2Fy 可以尝试 GITLAB 技术入股的极狐 https://gitlab.cn ,不过还得再等一两个月。(我已经申请内测成功了,嘿嘿)
|
7
skiy 2021-10-17 14:16:15 +08:00 1
|
8
proxychains 2021-10-17 15:05:45 +08:00
@chengfeng newbee,gitee 能用了.感谢大佬
|
10
Kobayashi 2021-10-17 17:27:27 +08:00 1
@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 [email protected] -vv 或者 ssh -T [email protected]. -vv 开启 debug2 级别日志。在结果中检索 'host key algorithms',注意有 2 条匹配,一条客户端的,一条服务端的。 gitee: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519. OpenSSH 服务端没有支持 rsa-sha2-*. bitbucket 就更狠了: ssh-rsa,ssh-dss. 根本就不支持任何椭圆曲线签名算法。 |
11
Rache1 2021-10-17 17:46:38 +08:00
gitee 比 github 还离谱,老是 push 或者 pull 超时,测试机是 HK 的,有时候拉代码完全听天由命
|
12
Kobayashi 2021-10-17 18:08:18 +08:00
更正:
- bitbucket 还需要指定 HostKeyAlgorithms +ssh-rsa - 另外上条回复末尾 bitbucket 不支持椭圆曲线应该是错误的,不能只依据 host key algorithms 判断 |
13
Wanerlove OP |
14
knightdf 2021-10-18 08:47:14 +08:00
gitee 这垃圾有用的必要?
|
15
forcecharlie 2021-10-18 14:29:47 +08:00 4
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 前员工。 |
16
qq1340691923 2021-10-19 09:41:52 +08:00
@forcecharlie 大佬
|
17
cco 2021-10-19 14:35:05 +08:00
gitee coding 经常遇到这问题
|