【问题标题】:From Jenkins run getting the following error while ssh: Permission denied (publickey,password,keyboard-interactive)从 Jenkins 运行 ssh 时出现以下错误:Permission denied (publickey,password,keyboard-interactive)
【发布时间】:2021-05-11 18:03:46
【问题描述】:

当我从运行以下命令的 linux CLI 对远程 Windows 机器执行 ssh 时,它可以工作:

ssh -tt username@ip_address

但是,当我通过 Jenkins 运行相同的程序时,它会引发以下错误:

+ ssh -tt username@ip_address
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password,keyboard-interactive)

那么可能出了什么问题?我相信这与 ssh-keys 无关,因为从 CLI 手动运行上述命令有效,但仅从 Jenkins 失败。

我是 Jenkins 的新手,因此对 Jenkins 的细节不太了解。请分享可能出了什么问题。

谢谢。

【问题讨论】:

    标签: jenkins ssh openssh jenkins-cli


    【解决方案1】:

    首先,检查 Jenkins 使用哪个帐户运行:如果它与在命令行中用于 ssh 测试的帐户不同,则它不会访问相同的 ~/.ssh/id_rsa 私钥。

    其次,尝试为SSH plugin configurationSSH pipeline step 指定相同的密钥(假设没有密码),以确保它使用正确的文件。

    【讨论】:

    • 第一个选项是正确的。在这两种情况下,我都使用用户“jenkins”。来到第二个选项,我参考了“SSH 插件配置”链接,发现我没有配置“使用 ssh 在远程主机上执行 shell 脚本”,其余部分看起来是一样的。那么在我的情况下是否有必要配置“使用 ssh 在远程主机上执行 shell 脚本”部分?我已经在“执行 shell”部分下编写了我的命令。没事吧?
    • @RDX 我更喜欢使用 SSH 特定的命令而不是通用的执行 shell 选项。
    • 所以在这种情况下,无论我在通用执行 shell 选项中编写什么,我可以在“使用 ssh 在远程主机上执行 shell 脚本”下运行同样的事情吗?如果是,那么它应该在“Post build script”或“Pre build script”下?请指教。
    • @RDX Prebuild,前提是您首先使用正确的密钥文件注册了 SSH 主机(如此处:stackoverflow.com/a/57491006/6309):请参阅 programmersought.com/article/4529149388 以获取示例。激活详细输出,获取更多线索:joshuaayson.com/…
    猜你喜欢
    • 2012-05-03
    • 2019-10-01
    • 2021-10-30
    • 2018-05-17
    • 2012-11-01
    • 2021-02-05
    • 2018-03-01
    • 1970-01-01
    • 2019-02-21
    相关资源
    最近更新 更多