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.
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
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
Run Code Online (Sandbox Code Playgroud)
但是,请注意,这是一种解决方法,并且已知它是不安全的,因此您应该联系 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-1
in 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
Run Code Online (Sandbox Code Playgroud)\n给你的~/.ssh/config
Host your-azure-devops-domain\n IdentityFile ~/.ssh/id_rsa\n IdentitiesOnly yes\n HostkeyAlgorithms +ssh-rsa\n PubkeyAcceptedAlgorithms +ssh-rsa\n
Run Code Online (Sandbox Code Playgroud)\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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
小智 15
在您的~/.ssh/config
文件中,添加这些行。
Host *.drush.in
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
Run Code Online (Sandbox Code Playgroud)
小智 10
我也遇到了这个问题,这对我有用:
cd ~/.ssh/
vim config
Host [Hostname]
User [User]
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
Run Code Online (Sandbox Code Playgroud)
我在几个主机名上遇到了这个问题,所以现在我的 ssh 配置文件中有几个这样的配置。
小智 10
有 2 个步骤:
将配置文件(不带扩展名)添加到您的~/.ssh/
目录中。
将以下内容添加到配置文件中:
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
371978 次 |
最近记录: |