新版openssh(cygwin)免密码登录失败(no mutual signature)解决 ## 安装openssh 因为在cygwin上使用ssh,这里顺便介绍下初始化。 首先重新启动安装程序,搜索openssh,装上。 ![](/static/upload/202112/file_1639238900000_33.png) 然后,初始化配置文件。 ``` 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`文件中。 ![](/static/upload/202112/file_1639239455000_96.png) 此时,已经可以使用ssh来免密码登录相关机器了。 来自 大脸猪 写于 2021-12-12 00:04 -- 更新于2021-12-12 00:26 -- 0 条评论