连接詹金斯代理:格式错误的 SSH 字节字符串

Connecting jenkins agent: Malformed SSH byte string

我在尝试通过 ssh 连接 jenkins 代理时遇到了这个问题。我已经通过了这里描述的所有步骤:https://acloudguru.com/blog/engineering/adding-a-jenkins-agent-node,除了一个 - 而不是 yum install java-1.8.0-openjdk 我使用了 apt install default-jre,它最终给了我 openjdk 11.0.13 2021-10-19。在所有尝试启动代理后我收到错误:

java.io.IOException: Malformed SSH byte string.
    at com.trilead.ssh2.packets.TypesReader.readByteString(TypesReader.java:132)
    at com.trilead.ssh2.packets.TypesReader.readMPINT(TypesReader.java:117)
    at com.trilead.ssh2.signature.RSAKeyAlgorithm.decodePublicKey(RSAKeyAlgorithm.java:113)
    at com.trilead.ssh2.signature.RSAKeyAlgorithm.decodePublicKey(RSAKeyAlgorithm.java:28)
    at com.trilead.ssh2.KnownHosts.addHostkey(KnownHosts.java:108)
    at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:410)
    at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:438)
    at com.trilead.ssh2.KnownHosts.<init>(KnownHosts.java:87)
    at hudson.plugins.sshslaves.verifiers.KnownHostsFileKeyVerificationStrategy.getPreferredKeyAlgorithms(KnownHostsFileKeyVerificationStrategy.java:108)
    at hudson.plugins.sshslaves.SSHLauncher.call(SSHLauncher.java:425)
    at hudson.plugins.sshslaves.SSHLauncher.call(SSHLauncher.java:421)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
[01/04/22 15:30:12] Launch failed - cleaning up connection
[01/04/22 15:30:12] [SSH] Connection closed.

请帮助我了解发生了什么以及如何解决。我是 jenkins 的新手,不熟悉 java。谷歌搜索这个问题并没有给我提供一些合理的结果。 谢谢。

这很可能是由于 KnownHosts 文件的内容不正确。因此,请确保 KnownHosts 文件与 id_rsa.pub(public 文件的内容正确,如果不正确,则需要在主机名或 IP 地址后添加。如;

主机名ssh-rsa AAAAB3NzaC1yc...