PhpStorm的deployment是一个很方便的功能,他可以让我们随时将修改的文件上传到测试环境,这次遇到的问题是在验证私钥的时候PhpStorm报错显示私钥格式不正确。
情况如下:
很明显错误是生成的密钥格式不正确导致,于是对比了一下两种密钥格式:
于是我们可以看到,的确是有所不同,最后在openssh官网的发行说明中发现原来是从OpenSSH7.8开始ssh-keygen默认生成的格式已经是openssh而不在是openssl的pem格式,例如下面的原文,如果想要继续使用pem,我们可以使用ssh-keygen的-m PEM来,而刚好我的openssh的版本是最新的。
ssh-keygen(1): write OpenSSH format private keys by default
instead of using OpenSSL's PEM format. The OpenSSH format,
supported in OpenSSH releases since 2014 and described in the
PROTOCOL.key file in the source distribution, offers substantially
better protection against offline password guessing and supports
key comments in private keys. If necessary, it is possible to write
old PEM-style keys by adding "-m PEM" to ssh-keygen's arguments
when generating or updating a key.
这是openssh官网解释的,大意是OpenSSH格式会比PEM更加安全,所以我决定在7.8之后默认格式就改变了,很霸道,如果你想使用PEM的格式可以在ssh-keygen时候使用参数 -m PEM