You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu服务器升级后Jenkins SSH私钥认证失败求助

Ubuntu升级后Jenkins SSH私钥认证失败问题排查与求助

我在Ubuntu服务器的Docker中部署了Jenkins实例,该实例通过「Execute shell script on remote host using ssh」插件以私钥认证方式连接同一台Ubuntu服务器执行任务,正常运行已超过一年。近期通过do-release-upgrade升级Ubuntu版本后,所有连接该服务器的SSH脚本均出现认证失败。

错误信息

[SSH] executing...
[SSH] Exception:Auth fail
com.jcraft.jsch.JSchException: Auth fail

已完成的排查操作

  1. 连接其他机器的SSH脚本仍正常运行,排除SSH插件或Jenkins本身的问题,确认问题出在目标服务器端。
  2. 配置私钥认证的两个用户(<user>和root)均无法连接,排除特定用户的问题,定位为服务器层面的问题。
  3. 执行简单的echo "hello"脚本仍出现相同错误,确认脚本本身无修改且无问题。
  4. 切换为用户名密码认证可正常连接,排除机器/代理拦截、IP/端口错误等基础问题,确认仅私钥认证失效。
  5. 按原有流程重新生成多种密钥(包括不同参数的RSA密钥,带/不带密码短语),复制私钥到Jenkins后仍无效。
  6. 完全删除并重建~/.ssh/文件夹,问题依旧存在。
  7. 使用Jenkins中相同的私钥从Macbook可正常登录服务器(命令:ssh -i key.pem <user>@<ip> -p <port>),证明密钥本身无问题。
  8. 升级后Macbook需删除known_hosts中该服务器旧记录,但Jenkins配置中无相关设置;结合密码认证正常,说明连接无阻碍,而是Jenkins无法正确使用私钥。
  9. 还原了升级后变更的/etc/ssh/sshd_config部分设置(如将PasswordAuthentication no改回yes,与升级前一致),脱敏后的配置见附录。
  10. 升级Jenkins及其所有插件,问题未解决。

虽然用户名密码认证可用,但我希望恢复私钥认证(更安全且便于权限管理),求解决方法或下一步排查方向。


附录

密钥生成变体

通用方式

# 生成密钥
mkdir ~/.ssh; cd ~/.ssh/ && ssh-keygen -t rsa -m PEM -C "Jenkins agent key" -f "jenkinsAgent_rsa"

# 授权密钥
cat jenkinsAgent_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys ~/.ssh/jenkinsAgent_rsa

# 获取Jenkins用私钥
cat ~/.ssh/jenkinsAgent_rsa

带root权限执行

# 在其他命令前执行
sudo su $AGENT_USER

或

# 在其他命令前执行
sudo su

不同密钥生成命令

ssh-keygen -t rsa -b 4096 -m PEM -C "Jenkins agent key" -f "jenkinsAgent_rsa"
ssh-keygen -t rsa -C "Jenkins agent key" -f "jenkinsAgent_rsa"

生成的密钥格式(内容已脱敏)

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,518C612F99A868<somecharsremoved>09C9A6047E20

sDqB0yOas0sf4dJRLvb8IxyOvoIwr8Ls3uMbugwTOJ/
(...)
MuZyUzWXnhUaWgnXJlTLhnmXiJ9XgUClYftQpP4RZw9Ult/dje5XD81RmwwhuxUV
-----END RSA PRIVATE KEY-----

sshd_config(已移除所有注释)

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Include /etc/ssh/sshd_config.d/*.conf
Port <port>
# 原配置为`ChallengeResponseAuthentication no`,现改为此项,认为无影响
KbdInteractiveAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem       sftp    /usr/lib/openssh/sftp-server
PasswordAuthentication yes

内容的提问来源于stack exchange,提问作者nitobuendia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:50:46