003jenkins:配置密钥时报错的解决:Failed to add SSH key. Message invalid privatekey(Jenkins 2.379)
2023-09-27 14:19:39 时间
一,报错的现象:
1,提示信息:
jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message [invalid privatekey: [B@60373f7]
如图:
2,系统环境:
fedora 30
[root@localhost ~]# more /etc/redhat-release Fedora release 30 (Thirty)
内核 :
[root@localhost ~]# uname -r 5.6.13-100.fc30.x86_64
ssh
[root@localhost ~]# ssh -V OpenSSH_8.0p1, OpenSSL 1.1.1g FIPS 21 Apr 2020
jenkins的版本是2.257
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,问题的原因
因为我们生成密钥的openssh的版本过高的原因
看例子:先生成密钥
[root@localhost ~]# ssh-keygen -t rsa
查看所生成私钥的格式:
[root@localhost ~]$ more .ssh/id_rsa -----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn …
可以看到密钥的首行是:
-----BEGIN OPENSSH PRIVATE KEY——
而jenkins 2.2.57 版本在检验密钥时还不支持这种格式,
三,问题的解决:
1,指定格式
[root@localhost ~]# ssh-keygen -m PEM -t rsa -b 4096
说明:
-m 参数指定密钥的格式,PEM是rsa之前使用的旧格式
-b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。
附man手册的说明:
-m key_format Specify a key format for key generation, the -i (import), -e (export) conversion options, and the -p change passphrase oper‐ ation. The latter may be used to convert between OpenSSH private key and PEM private key formats. The supported key for‐ mats are: “RFC4716” (RFC 4716/SSH2 public or private key), “PKCS8” (PKCS8 public or private key) or “PEM” (PEM public key). By default OpenSSH will write newly-generated private keys in its own format, but when converting public keys for export the default format is “RFC4716”. Setting a format of “PEM” when generating or updating a supported private key type will cause the key to be stored in the legacy PEM private key format.
2,查看密钥格式:
[root@localhost ~]# more /root/.ssh/id_rsa -----BEGIN RSA PRIVATE KEY----- MIIJKAIBAAKCAgEA44rzAenw3N7Tpjy5KXJpVia5oSTV/HrRg7d8PdCeJ3N1AiZU ...
可以看到密钥的首行是:
-----BEGIN RSA PRIVATE KEY-----
这样改动后可以通过jenkins对密钥格式的验证
四,测试:
点击 test configuration 后,提示 success,表示密钥无问题
五,查看Jenkins版本
在登录后首页的右下角,可以看到当前的版本: 2.379
相关文章
- Struts2 convention插件试用+ Spring+Hibernate SSH整合
- SSH远程连接Ubuntu【局域网】
- macOS跟linux如何在外网远程ssh连接树莓派
- SSH无密码登录:只需两个简单步骤 (Linux)
- ssh远程执行nohup命令不退出
- jenkins学习笔记第十六篇 Jenkins·配置 Publish Over SSH 插件——访问远程服务器
- mac ssh 命令
- ssh分发秘钥时出现错误“Permission denied (publickey,gssapi-keyex,gssapi-with-mic)”
- Linux SSH 连接不上
- SSH客户端 (通过密码连接远程linux主机)
- linux ssh 服务优化
- macOS 使用 SSH 连接服务器
- git clone 项目 如何创建 SSH key
- centos7 ssh dockerfile
- SSL和SSH和OpenSSH,OpenSSL有什么区别
- 浅析如何使docker容器可以进行ssh连接
- 树莓派登录ssh 很慢和开机启动tightvncserver
- socat管理haproxy配置 ssh-keygen -N '' -t rsa -q -b 2048
- ssh密码登陆的原理,密码的公私钥和sshkey的不是一回事
- Web 基础之 SSH 框架访问网页返回 json 数据简单实现的整理
- 解决MacOS ssh证书 每次都需要输入密码的问题 Enter passphrase for key everytime
- ssh修改默认远程端口