背景
在docker中安装了Jenkins,在安装完“publish over ssh”插件,开始添加远程服务器[这个时候注意了,添加的是docker容器的公钥到远程服务器上]时,发现报下面错误
问题的原因
因为我们生成密钥的openssh的版本过高的原因
看例子:先生成密钥
[root@localhost ~]# ssh-keygen -t rsa
查看所生成私钥的格式:
[root@localhost ~]$ cat id_rsa
——-BEGIN OPENSSH PRIVATE KEY——-
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
…
可以看到密钥的首行是:
——-BEGIN OPENSSH PRIVATE KEY——
而jenkins 2.319.1 版本在检验密钥时还不支持这种格式,
问题的解决
指定格式
[root@localhost ~]# ssh-keygen -m PEM -t rsa -b 4096
说明:
-m 参数指定密钥的格式,PEM是rsa之前使用的旧格式
-b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。
在重新将生成的公钥添加到远程服务器上时,就可以成功连通了。