Kis*_*ore 19 git gerrit windows-10
环境:
OS: Windows-10
Git Bash Version: 2.33.1
OpenSSH_8.8p1, OpenSSL 1.1.1l 24 Aug 2021
$ which ssh
/usr/bin/ssh
Run Code Online (Sandbox Code Playgroud)
SSH 连接到 Gerrit 错误:-
$ ssh -p 29418 user@gerrit.example.com
Unable to negotiate with gerrit.example.com port 29418: no matching host key type found. Their offer: ssh-rsa,ssh-dss
Run Code Online (Sandbox Code Playgroud)
通过Git-2.32.0ssh 连接到 gerrit 可以正常工作。最新的 git 版本是否启用了任何限制?
Von*_*onC 39
Git For Windows 2.33.1附带OpenSSH 8.8,默认情况下禁用使用 SHA-1 哈希算法的 RSA 签名。
对于大多数用户来说,此更改应该是不可见的,并且无需替换 ssh-rsa 密钥。
OpenSSH 自 7.2 版起就支持 RFC8332 RSA/SHA-256/512 签名,现有的 ssh-rsa 密钥将在可能的情况下自动使用更强的算法。当连接到尚未升级或未密切跟踪 SSH 协议改进的较旧 SSH 实现时,更有可能出现不兼容问题。
对于这些情况,可能需要有选择地重新启用 RSA/SHA1,以允许通过 HostkeyAlgorithms 和 PubkeyAcceptedAlgorithms 选项进行连接和/或用户身份验证。
例如,~/.ssh/config 中的以下节将为单个目标主机启用 RSA/SHA1 以进行主机和用户身份验证:Run Code Online (Sandbox Code Playgroud)Host old-host HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa
注意:Git for Windows 2.34.0并未在 SSH 方面带来任何新元素/演变。
Stefan Prodan(DX @weaveworks,http://flagger.app的创建者和http://fluxcd.io的维护者)在这条推文中提到:
GitHub 已更改其主机密钥
如果您使用 @fluxcd,请参阅此处如何更新 Kubernetes 集群上的已知主机密钥。
Stefan 引用了fluxcd/flux2讨论 2097:
GitHub 已将其 SSH 主机密钥从 RSA 更改为 ECDSA!
要修复密钥不匹配错误,您有两种选择:
known_hosts使用 ecdsa-sha2-nistp25 值更新Flux-system Secret 中的 :
github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
- 或者使用 Flux boostrap 轮换 SSH 密钥,如下所示:
- 从集群中删除部署密钥
kubectl -n flux-system delete secret flux-systemflux bootstrap github使用与之前相同的参数重新运行Flux 将使用 ecdsa-sha2 SSH 密钥和主机密钥生成密钥
注意:自 2022 年 1 月起,GitHub SSH 主机密钥可通过元数据端点获取api.github.com/meta。
这包括github.com ecdsa-sha2-nistp256价值。
tod*_*dwz 10
面临同样的问题。解决办法是在~/.ssh/config中添加以下内容
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
Run Code Online (Sandbox Code Playgroud)
无法像接受的答案中那样拥有主机。一定要和上面的完全一样。我想每个服务器可能以不同的方式配置,个人可能必须进行试验。