我试图像这样连接到M1 macOS终端中的ssh服务器
ssh -i {myKeyFilePath/myKeyFile.pem} user@host
但它又回来了
sign_and_send_pubkey: no mutual signature supported
user@host: Permission denied (publickey).
我没有修改任何ssh设置和{myKeyFile.pem} is 400的文件权限,也可以通过IntelliJ远程主机很好地连接ssh服务器。但是当我在终端机上尝试这个的时候,它出了问题。有人帮助我吗?
发布于 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。
尝试以下命令:
ssh -o PubkeyAcceptedKeyTypes=rsa-sha2-256 -i {myKeyFilePath/myKeyFile.pem} user@host
如果该命令失败,涉及不支持的密钥交换时出错,则SSH客户端可能是古老的。
使用下列解决方案之一:
(recommended)
中使用不同的SSH密钥类型,如Ed25519
编辑:
如果这样做有效,可以将其永久添加到~/.ssh/config
文件中,并从命令行中删除它。但是,有一个有效的安全原因是rsa-sha1 1被禁用。这只是作为最后的手段,因为SHA1已经被打破了。如果您的服务器经过安全审核或公开给公共Internet,请不要启用rsa-sha1 1。
Host *
PubkeyAcceptedKeyTypes +ssh-rsa
用特定的主机或IP地址替换*
,以限制此配置的使用。
发布于 2022-10-31 03:34:02
当我更新我的Mac系统时,所有ssh服务器都不能使用私钥,您可以在/etc/. ssh /config的开头添加下面的3行。但是最好的解决方案是创建一个新的私钥,然后一个一个地将公钥上传到每个服务器,因为当您收到此错误时,意味着您的私钥不再被推荐使用。
# vim /etc/.ssh/config, add the lines at the beginning
Host *
PubkeyAcceptedKeyTypes=+ssh-rsa
HostKeyAlgorithms=+ssh-rsa
https://stackoverflow.com/questions/73795935
复制相似问题