最近遇到一个奇怪的问题,原本能够通过key自动登录的ssh,突然不能登录了。
经过调查,我发现原本的key类型是“ecdsa-sha2-nistp256”,但是服务器现在要求的key是“ed25519”类型。此时在客户端(本机),删除掉“~/.ssh/config”和“~/.ssh/known_hosts”里对应的服务器端的信息。重新用ssh连接。此时,虽然不能自动登录,但是可以通过密码登录。
登录成功后,在服务器端修改“vi .ssh/authorized_keys ”。将原本的“ecdsa-sha2-nistp256”类型的key,替换为“ed25519”的新key。保存并关闭。
重新用ssh登录,这下自动登录又好用了。
生成“ed25519”的方法,可以看github的说明。
结论
从上个月起,github改变了策略,新上传的key必须是“ed25519”类型,之前的类型不再接受。一些Linux发行版也采用了类似的策略。但是,自动改变的类型,导致之前能自动登录的不能成功,这的确造成了一些问题。