zl程序教程

您现在的位置是:首页 >  其他

当前栏目

新版openssh(cygwin)免密码登录失败(no mutual signature)解决

2023-04-18 16:17:38 时间

安装openssh

因为在cygwin上使用ssh,这里顺便介绍下初始化。 首先重新启动安装程序,搜索openssh,装上。

然后,初始化配置文件。

ssh-host-config

此时会在/etc文件夹下创建所有需要的文件

调整配置文件

在cygwin中,配置文件不在~/.ssh/config中,而是在/etc/ssh_config下。 注意这一行:

#   IdentityFile ~/.ssh/id_ed25519

取消注释。这里不要使用rsa的密钥。

这里特别注意,新版的openssh不再支持rsa算法,使用rsa生成的默认密钥会无法配置免密登录。 具体上以调试方式使用ssh:

ssh -vvv root@9.123.2.xxx -p 36000

然后调试日志中会出现:

debug1: Offering public key: /home/yinzi/.ssh/id_rsa RSA SHA256:8+ov/xlPvjwwjPxxxxxxxxxxxxxxxxxxwRbswpU
debug1: send_pubkey_test: no mutual signature algorithm
debug2: we did not send a packet, disable method

no mutual signature algorithm代表这个算法的支持有问题。

重新生成密钥

此时,IdentityFile ~/.ssh/id_ed25519路径下还没有密钥。

虽然在初始化的时候在/etc目录下都产生了相关的密钥文件,但是这里重新生成一对密钥。使用ed25519算法。

ssh-keygen -t ed25519 -C "your_email@cygwin"

复制~/.ssh/id_ed25519.pub中的内容,到目标机器的~/.ssh/authorized_keys文件中。

此时,已经可以使用ssh来免密码登录相关机器了。