macOS 10.13.2下SSH命令Invalid key length错误的原因
升级到Macos 10.13.2后,使用ssh以key方式登陆一个12年配置的服务器的时候,ssh命令报告了Invalid key length
的错误。
很是纳闷,服务器和本地的key都是配置好后就没动过的,key pair本身肯定没问题啊,怎么会报错了呢?
原因
Google了一下,发现是MacOS使用的OpenSSH版本升级到了7.6,小于1024bits的RSA keys已经不被支持了。
使用ssh-keygen
查看了一下public key,发现是1023bit的。所以ssh时候报了Invalid key length
的错误。
|
|
解决方法
重新生成了一个长度为2048bit的新ssh keypair,并将公钥添加到服务器端,就可以解决该问题。
这个Invalid key length
的错误,只是Macos的ssh客户端的行为,如果不换key,而使用一个允许小于1024bit的ssh客户端,原有的key仍然是可以登陆服务器的。
小测试
试验1024bit key length
使用ssh-keygen -t rsa -b 1024 -C "carl.shen@hello_aws" -f carl_1024
生成key length为1024的keypair
使用私钥carl_1024登陆服务器,ssh客户端不会报告Invalid key length
的错误
试验2048bit key length
使用ssh-keygen -t rsa -b 2048 -C "carl.shen@hello_aws" -f carl_2048
生成key length为2048的keypair
使用私钥carl_2048登陆服务器,ssh客户端就不会报告Invalid key length
的错误
试验4096bit key length
使用ssh-keygen -t rsa -b 4096 -C "carl.shen@hello_aws" -f carl_4096
生成key length为4096的keypair
使用私钥carl_4096登陆服务器,ssh客户端就不会报告Invalid key length
的错误
尝试生成小于1024 bit的key失败
|
|