首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SSH: Sign_and_send_pubkey:不支持相互签名

SSH: Sign_and_send_pubkey:不支持相互签名
EN

Stack Overflow用户
提问于 2022-09-21 05:53:46
回答 2查看 5.9K关注 0票数 14

我试图像这样连接到M1 macOS终端中的ssh服务器

代码语言:javascript
运行
复制
ssh -i {myKeyFilePath/myKeyFile.pem} user@host

但它又回来了

代码语言:javascript
运行
复制
sign_and_send_pubkey: no mutual signature supported
user@host: Permission denied (publickey).

我没有修改任何ssh设置和{myKeyFile.pem} is 400的文件权限,也可以通过IntelliJ远程主机很好地连接ssh服务器。但是当我在终端机上尝试这个的时候,它出了问题。有人帮助我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-23 21:29:04

很可能您的SSH客户端正在使用ssh-rsa (RSA+SHA1),并且您的服务器禁用了该签名算法。沙-1易受攻击,OpenSSH在版本8.8 (2021-09-26)中禁用了该签名算法.

ssh-rsa的替代品是rsa-sha2-256和rsa-sha2-512。

尝试以下命令:

代码语言:javascript
运行
复制
ssh -o PubkeyAcceptedKeyTypes=rsa-sha2-256 -i {myKeyFilePath/myKeyFile.pem} user@host

如果该命令失败,涉及不支持的密钥交换时出错,则SSH客户端可能是古老的。

使用下列解决方案之一:

(recommended)

  • enable
  • 更新SSH客户端(通常是个好主意)
  • 在SSH服务器(不推荐)

中使用不同的SSH密钥类型,如Ed25519

  • rsa-sha

编辑:

如果这样做有效,可以将其永久添加到~/.ssh/config文件中,并从命令行中删除它。但是,有一个有效的安全原因是rsa-sha1 1被禁用。这只是作为最后的手段,因为SHA1已经被打破了。如果您的服务器经过安全审核或公开给公共Internet,请不要启用rsa-sha1 1。

代码语言:javascript
运行
复制
Host *
    PubkeyAcceptedKeyTypes +ssh-rsa

用特定的主机或IP地址替换*,以限制此配置的使用。

票数 10
EN

Stack Overflow用户

发布于 2022-10-31 03:34:02

当我更新我的Mac系统时,所有ssh服务器都不能使用私钥,您可以在/etc/. ssh /config的开头添加下面的3行。但是最好的解决方案是创建一个新的私钥,然后一个一个地将公钥上传到每个服务器,因为当您收到此错误时,意味着您的私钥不再被推荐使用。

代码语言:javascript
运行
复制
# vim /etc/.ssh/config, add the lines at the beginning
Host *
    PubkeyAcceptedKeyTypes=+ssh-rsa
    HostKeyAlgorithms=+ssh-rsa
票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73795935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档