SSHKit::Runner::ExecuteError:以 root@co 身份执行时出现异常:Jenkins Job 的 shell 脚本中的用户 root@ 身份验证失败

2024-05-11

我正在尝试从 Jenkins Job 运行 cap 部署命令。它不断抛出以下错误。我也在部署服务器中添加了 ssh 密钥。我能够从配置 Jenkins 的服务器成功部署。但是当我运行该作业时,会引发身份验证错误。这对我来说真的很重要。有人可以帮忙吗?

Started by user admin
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/TBuildJob
[TBuildJob] $ /bin/bash -l /tmp/jenkins16881638870572548750.sh
Deploying Job has started
Script executed from: /var/lib/jenkins/workspace/TBuildJob
jenkins

jenkins
** Invoke dev1 (first_time)
** Execute dev1
** Invoke load:defaults (first_time)
** Execute load:defaults
** Invoke rvm:hook (first_time)
** Execute rvm:hook
** Invoke rvm:check (first_time)
** Execute rvm:check
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as root@<server>: Authentication failed for user root@<server>
/usr/local/rvm/gems/ruby-2.3.1/gems/sshkit-1.15.1/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute'
/usr/local/rvm/gems/ruby-2.3.1/gems/sshkit-1.15.1/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
Net::SSH::AuthenticationFailed: Authentication failed for user root@<server>
/usr/local/rvm/gems/ruby-2.3.1/gems/net-ssh-4.2.0/lib/net/ssh.rb:254:in `start'
/usr/local/rvm/gems/ruby-2.3.1/gems/sshkit-1.15.1/lib/sshkit/backends/connection_pool.rb:59:in `call'
/usr/local/rvm/gems/ruby-2.3.1/gems/sshkit-1.15.1/lib/sshkit/backends/connection_pool.rb:59:in `with'
/usr/local/rvm/gems/ruby-2.3.1/gems/sshkit-1.15.1/lib/sshkit/backends/netssh.rb:176:in `with_ssh'
/usr/local/rvm/gems/ruby-2.3.1/gems/sshkit-1.15.1/lib/sshkit/backends/netssh.rb:129:in `execute_command'
/usr/local/rvm/gems/ruby-2.3.1/gems/sshkit-1.15.1/lib/sshkit/backends/abstract.rb:141:in `block in create_command_and_execute'
/usr/local/rvm/gems/ruby-2.3.1/gems/sshkit-1.15.1/lib/sshkit/backends/abstract.rb:141:in `tap'
/usr/local/rvm/gems/ruby-2.3.1/gems/sshkit-1.15.1/lib/sshkit/backends/abstract.rb:141:in `create_command_and_execute'
/usr/local/rvm/gems/ruby-2.3.1/gems/sshkit-1.15.1/lib/sshkit/backends/abstract.rb:60:in `capture'
/usr/local/rvm/gems/ruby-2.3.1/gems/capistrano-rvm-0.1.2/lib/capistrano/tasks/rvm.rake:9:in `block (3 levels) in <top (required)>'
/usr/local/rvm/gems/ruby-2.3.1/gems/sshkit-1.15.1/lib/sshkit/backends/abstract.rb:29:in `instance_exec'
/usr/local/rvm/gems/ruby-2.3.1/gems/sshkit-1.15.1/lib/sshkit/backends/abstract.rb:29:in `run'
/usr/local/rvm/gems/ruby-2.3.1/gems/sshkit-1.15.1/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute'
Tasks: TOP => rvm:check
Build step 'Execute shell' marked build as failure
Finished: FAILURE

我在 ubuntu 22.04 服务器上使用 Capistrano 进行部署时遇到了类似的问题。 登录服务器然后尝试部署。 检查日志。

$ journalctl -t sshd -b0

Jun 10 04:30:17 xxxx sshd[664]: Server listening on 0.0.0.0 port 22.
Jun 10 04:30:17 xxxx sshd[664]: Server listening on :: port 22.
Jun 10 04:30:17 xxxx sshd[665]: Accepted publickey for ubuntu from xx.xx.xx.xx port 46072 ssh2: RSA SHA256:XXXX
Jun 10 04:30:17 xxxx sshd[665]: pam_unix(sshd:session): session opened for user xxxx(uid=1000) by (uid=0)
Jun 10 04:30:32 xxxx sshd[944]: userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
Jun 10 04:30:32 xxxx sshd[944]: Connection closed by authenticating user ubuntu xx.xx.xx.xx port 46074 [preauth]

更改您的 sshd_config。

$ sudo nano -l  /etc/ssh/sshd_config

添加行

PubkeyAuthentication yes
PubkeyAcceptedKeyTypes=+ssh-rsa

重新启动 sshd 守护进程

sudo systemctl restart ssh.service

Cheers!

这对我有用,但稍后需要更改公钥。

$ ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -C "comment"
$ ssh-keygen -t rsa-sha2-256 -b 4096 -f ~/.ssh/id_rsa2_256 -C "comment"
$ ssh-keygen -t rsa-sha2-512 -b 4096 -f ~/.ssh/id_rsa2_512 -C "comment"

很棒的讨论https://bbs.archlinux.org/viewtopic.php?id=270005 https://bbs.archlinux.org/viewtopic.php?id=270005

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSHKit::Runner::ExecuteError:以 root@co 身份执行时出现异常:Jenkins Job 的 shell 脚本中的用户 root@ 身份验证失败 的相关文章

  • Capistrano 部署擦除数据库?

    我已成功使用 Capistrano 将我的应用程序部署到生产环境 但我不明白如何处理我的数据库 我正在使用颠覆和乘客 当我运行 cap 部署时 新部署会重新启动一切 它会清除添加到数据库中的数据 显然 必须有一个解决方案 但我很惊讶没有在网
  • Jenkins sudo:不存在 tty,并且没有使用 NOPASSWD 指定的 Askpass 程序 [重复]

    这个问题在这里已经有答案了 我花了几天时间来设置文件 etc sudoers能够向用户授予 root 权限jenkins 我在我的服务器上安装了 Jenkins 因为我使用 symfony ionic neo4j 等托管多个项目 问题是我无
  • 如何在声明性 Jenkins 管道的阶段之间传递变量?

    如何在声明性管道的阶段之间传递变量 在脚本化管道中 我收集的过程是写入临时文件 然后将该文件读入变量 如何在声明式管道中执行此操作 例如 我想根据 shell 操作创建的变量触发不同作业的构建 stage stage 1 steps sh
  • Jenkins 可扩展选择,具有基于用户角色的用户特定项目

    我遇到一种情况 我想更改 Jenkins 参数化构建中选择参数的内容 就我而言 我想要一个用于部署应用程序 部署我的应用程序 的项目 当构建这个项目时 用户会看到一个选择参数 我想根据用户角色更改此列表的内容 即具有 dev deploy
  • 使用 Capistrano 通过 FTP 部署(非 Rails 站点)?

    我该怎么办呢 我有一个大部分静态的网站 托管在一个廉价的网络主机上 只允许通过 FTP 访问托管 该网站是在 git 中跟踪的 我正在使用 OS X 我想通过简单地执行以下操作来上传该网站的新版本cap deploy 我们使用 capist
  • Jenkins 管道构建如何确定工作区文件夹?

    在 Jenkins 管道中 当在特定节点上运行构建时 会在该代理上分配工作空间 我们没有设置工作空间路径 因此它是自动确定的 据我了解 当同一作业在同一代理上同时运行时 工作区必须包含执行程序编号以隔离构建 但是 工作空间路径到底是如何构建
  • 让 Jenkins 对远程用户不可见

    我的本地 Windows 设备上有一个 Jenkins 服务器 但我想让它对外界不可见 有关服务器的办公室规则 明显且不隐晦的 效果令人满意的方法是设置防火墙规则来阻止对其端口的传入访问 但我认为必须有一个 Jenkins 设置来阻止它向除
  • 使用 Groovy 从 Jenkins 主节点访问从节点上的文件

    我正在使用 Jenkins Build Flow 插件来实现并行化 Groovy DSL 执行某些文件操作 即使该选项Restrict where this project can be run设置为在特定从属设备上运行作业 DSL 在主控
  • 使用 Capistrano 无法开始延迟的作业

    我无法使用 capistrano 配方启动延迟的作业流程 这是我收到的错误 usr local lib ruby gems 1 9 1 gems delayed job 2 1 1 lib delayed command rb 62 in
  • Git 子模块未在 Jenkins 构建中更新

    我在詹金斯的一个项目中有一个子模块 我已启用高级设置以递归更新子模块 当我运行构建时 我看到工作区包含子模块中的文件 问题是 它似乎是子模块的第一个修订版 当我推送更改 托管在 GitHub 上的存储库 时 Jenkins 似乎没有更新子模
  • 从 Ansible 中的文件结果中提取文件名

    我正在尝试使用 Ansible 的结果find模块 它返回在特定文件夹中找到的文件列表 问题是 当我迭代结果时 我没有文件名 我只有它们的完整路径 包括名称 有没有一种简单的方法来使用find result item下面提供file nam
  • 在 docker run 中发布 8080:80 和 8080:8080 有什么区别?

    我正在尝试运行詹金斯容器 我使用 docker run restart always name myjenkins p 8080 80 jenkins 但无法访问 jenkinshttp 本地主机 8080 http localhost 8
  • Jenkins 管道:代理与节点?

    和有什么区别agent and a node在詹金斯管道中 我找到了这些定义 Node https jenkins io doc book pipeline 管道在一个或多个声明的节点步骤的上下文中执行大部分工作 Agent https j
  • Jenkins 插件 ssh-agent 显示“错误:无法运行 ssh-add”

    我收到错误 错误 无法运行 ssh add 我正在尝试 ssh 进入远程机器 所以 SSH credential are set Pipeline script is calling ssh agent On executing the j
  • Jenkins v2.212:创建扩展解析器类时出错:找不到类

    将 Jenkins 升级到 v2 212 并安装许多可用的插件更新后 某些作业开始失败并出现以下错误 12 43 35 WS CLEANUP Deleting project workspace 12 43 35 WS CLEANUP De
  • 整合 Jenkins 电子邮件通知

    我有一个 Jenkins 项目 由 3 个简单的自由式作业组成 每个作业都有自己的构建从站 每个作业都与一个单独的平台相关联 linux mac 或 windows 当开发人员提交代码时 Jenkins 很快就会轮询存储库 在每个构建从属设
  • Jacoco 代码覆盖率在 Jenkins 上显示覆盖率为 0%

    我已阅读了类似问题的大部分答案 但没有一个适合回答我的问题 我的 pom 文件中的配置文件如下所示
  • 来自 jenkins api 的节点标签

    有什么方法可以从 jenkins API 中提取节点标签吗 这standard https wiki jenkins ci org display JENKINS Remote access API base url computer no
  • Python jenkinsapi - 禁用/启用不工作的作业

    我正在尝试使用 禁用作业 詹金萨皮 https jenkinsapi readthedocs io en latest using jenkinsapi html example 3 disable enable a jenkins job
  • 限制 jenkins.log 或 hudson.log 的日志大小

    我使用 Hudson 和 Jenkins 并且我在它们上做了几份工作 我的 hudson log jenkins log 文件有时会急剧增长 我知道相同的大小可能受到限制 请帮助了解如何更改以及必须在哪个文件中进行更改 您可以使用logro

随机推荐