Mar*_*rio 16 ssh password 22.04
从 Ubuntu 18.04 升级到 Ubuntu 22.04 后,无密码 SSH 不起作用。客户端是Ubuntu 22.04,服务器是Ubuntu 14.04。使用 Ubuntu 18.04 作为客户端可以正常工作。
我已经完成了在 .ssh 中生成密钥并将其复制到服务器的正确步骤,但在 Ubuntu 22.04 中它不起作用
我一直执行且一直有效的步骤摘要:
ssh-keygen -t rsa
cat .ssh/id_rsa.pub | ssh -p 1331 user@server 'cat >> .ssh/authorized_keys'
Run Code Online (Sandbox Code Playgroud)
这是海马的问题吗?在 Ubuntu 22.04 的 Seahorse 中,我找不到 18.04 中的选项“此密钥的所有者有权连接到这台计算机”。我不知道这是否与此有关
这有发生在其他人身上吗?
kar*_*rel 25
RSA SHA-1 哈希算法很快就会被弃用。有一种解决方法可以在SSH-RSA 密钥被拒绝并显示消息“无相互签名算法”时重新启用 RSA 。
为了完全解决此问题,我们的团队建议使用受支持且更安全的算法(例如 ECDSA 和 ED25519)重新生成这些已弃用的 SSH 密钥。使用 ECDSA 或 ED25519 算法生成的 SSH 密钥不受 RSA 弃用的影响。
/etc/ssh/ssh_config
在客户端添加以下行:
PubkeyAcceptedKeyTypes +ssh-rsa
Run Code Online (Sandbox Code Playgroud)
更新:我建议尝试使用命令行来查看建议的配置更改是否真正有效,这样,只有在您已经检查过配置更改是否有效时,您才会进行配置更改。
tl;dr -如果您在连接到机器(例如)时遇到此问题,请将这些行添加到 ssh 配置文件(通常是个人配置文件.ssh/config
或系统范围的配置文件) ,/etc/ssh/ssh_config
alice.example.com
bob.example.org
Host alice.example.com bob.example.org
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
Run Code Online (Sandbox Code Playgroud)
或者更详细地说:
Ubuntu 和 Linux 上的 SSH 通常指的是 OpenSSH,它现在已弃用(并默认禁用)RSA SHA-1 算法。它仍然可用,但必须为需要它的主机启用,请参阅他们的解释器,
当 SSH 客户端连接到服务器时,每一方都会向另一方提供连接参数列表...为了成功连接,每个参数必须至少有一个相互支持的选择。
为了能够连接到存在此问题的主机,需要上述一个或两个选项(建议升级主机,以便它们不再需要使用这种现在被认为不安全的算法)。在某些情况下,您可能希望为所有主机启用这些选项 ( Host *
)。
当您尝试连接到计算机时,如果看到此错误消息,
Unable to negotiate with ... port 22: no matching host key type found. Their offer: ssh-rsa
Run Code Online (Sandbox Code Playgroud)
可以用以下方法修复HostkeyAlgorithms +ssh-rsa
当您尝试连接到计算机时,如果看到此错误消息,
username@some.hostname: Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
可以用以下方法修复PubkeyAcceptedAlgorithms +ssh-rsa
将它们放在一起会给你一个像这样的节(在本例中为两台机器),
Host alice.example.com bob.example.org
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
Run Code Online (Sandbox Code Playgroud)
您需要将该节添加到个人 .ssh 配置文件(如果不存在则创建它),通常位于.ssh/config
您的主目录下,或者如果您希望计算机上的任何用户都拥有这些设置,请将该节添加到 .ssh 配置文件中/etc/ssh/ssh_config
。
如果您不想进行任何配置更改,可以在命令行上指定选项,
ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa some.hostname
Run Code Online (Sandbox Code Playgroud)
最后要注意的是,PubkeyAcceptedAlgorithms
关键字取代PubkeyAcceptedKeyTypes
了一些答案中提到的(请参阅更改日志中的“错误修复”部分)
归档时间: |
|
查看次数: |
28956 次 |
最近记录: |