Jar*_*děk 221 git ssh rsa ssh-keys
使用时出现以下错误git:
$ git pull
Unable to negotiate with 172.16.42.42 port 22: no matching host key type found. Their offer: ssh-rsa
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我该如何解决这个错误?
bk2*_*204 402
对于 SSH,有多种不同类型的密钥,而 RSA 密钥(ssh-rsa)类型可以支持多种签名。签名类型ssh-rsa是指RSA with SHA-1,签名类型rsa-sha2-256是RSA with SHA-256,签名rsa-sha2-512类型是RSA with SHA-512。
就Azure DevOps而言,它只支持带有SHA-1的RSA,而SHA-1被认为非常弱。这本质上意味着没有安全的方法可以通过 SSH 连接到它,在他们解决这个问题之前,您最好使用 HTTPS 或其他托管服务。GitHub、GitLab 和 Bitbucket 都支持安全的身份验证方法。
如果您目前确实需要将 SSH 与 Azure DevOps 结合使用,您可以在~/.ssh/config文件中添加一个条目来解决此问题:
Host ssh.dev.azure.com
    User git
    PubkeyAcceptedAlgorithms +ssh-rsa
    HostkeyAlgorithms +ssh-rsa
但是,请注意,这是一种解决方法,并且已知它是不安全的,因此您应该联系 Azure DevOps 了解此问题并切换到 HTTPS,直到他们这样做为止,或者转移到其他地方。
Cer*_*vEd 102
no matching host key type found. Their offer: ssh-rsa如果 OpenSSH 连接到的服务器提供通过ssh-rsa( ) 进行身份验证,则 OpenSSH 将报告错误 RSA/SHA1。
Azure DevOps (TFS) 提供通过ssh-rsa. 正如bk2204 的答案中所述,该算法不被认为是加密安全的。
由于它被认为很弱,OpenSSH在 2020 年 2 月 14 日弃用了SHA-1in 8.2。
\n\n现在可以[1]以不到 5 万美元的价格针对\nSHA-1 哈希算法执行选择前缀攻击。因此,我们将在不久的将来版本中默认禁用依赖于 SHA-1 的“ssh-rsa”公钥签名算法。
\n
Azure Devops Services随后发布了一个补丁,以允许SHA-2
2021 年 5 月 5 日,Azure DevOps 文档进行了更新,提及使用RSA 3072.
\xc2\xaf\\_(\xe3\x83\x84)_/\xc2\xaf
没有说任何地方。大概只是ssh-rsa。
添加这个
\n  HostkeyAlgorithms +ssh-rsa\n  PubkeyAcceptedAlgorithms +ssh-rsa\n给你的~/.ssh/config
Host your-azure-devops-domain\n  IdentityFile ~/.ssh/id_rsa\n  IdentitiesOnly yes\n  HostkeyAlgorithms +ssh-rsa\n  PubkeyAcceptedAlgorithms +ssh-rsa\nJar*_*děk 64
根据这篇文章,您可以将ssh.dev.azure.com主机配置添加到您的~/.ssh/config文件中:
~/.ssh/config对我有用的最终结果:Run Code Online (Sandbox Code Playgroud)Host ssh.dev.azure.com HostName ssh.dev.azure.com User git IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes PubkeyAcceptedAlgorithms +ssh-rsa HostkeyAlgorithms +ssh-rsa
张馆长*_*张馆长 53
scp 或 ssh 可以使用这个
ssh -p 22 -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa  user@myhost
# or scp
scp -P 22 -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa  user@myhost
Esb*_*rdt 20
对于那些使用 Azure DevOps 的用户,您应该使用以下~/.ssh/config ,因为 Azure 在其Clone Repository中返回的 url 有所不同:
Host ssh.dev.azure.com
  PubkeyAcceptedAlgorithms +ssh-rsa
  HostkeyAlgorithms +ssh-rsa
Host vs-ssh.visualstudio.com
  PubkeyAcceptedAlgorithms +ssh-rsa
  HostkeyAlgorithms +ssh-rsa
小智 15
在您的~/.ssh/config文件中,添加这些行。
Host *.drush.in
    HostkeyAlgorithms +ssh-rsa
    PubkeyAcceptedAlgorithms +ssh-rsa
小智 10
我也遇到了这个问题,这对我有用:
cd ~/.ssh/
vim config
Host [Hostname]
User [User]
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
我在几个主机名上遇到了这个问题,所以现在我的 ssh 配置文件中有几个这样的配置。
小智 10
有 2 个步骤:
将配置文件(不带扩展名)添加到您的~/.ssh/目录中。
将以下内容添加到配置文件中:
HostkeyAlgorithms +ssh-rsa    
PubkeyAcceptedAlgorithms +ssh-rsa
| 归档时间: | 
 | 
| 查看次数: | 371978 次 | 
| 最近记录: |