使用SSH代理在jenkins中配置从属节点

使用SSH代理在jenkins中配置从属节点,jenkins,ssh,Jenkins,Ssh,你好everubody,当我想用SSH代理方法在jenkins中配置一个从节点时,我遇到了这个问题,你能帮我解决这个问题吗? 11/01/17 12:16:15] [SSH] Opening SSH connection to 192.168.226.197:22. /var/lib/jenkins/.ssh/known_hosts [SSH] No Known Hosts file was found at /var/lib/jenkins/.ssh/known_hosts. Please e

你好everubody,当我想用SSH代理方法在jenkins中配置一个从节点时,我遇到了这个问题,你能帮我解决这个问题吗?

11/01/17 12:16:15] [SSH] Opening SSH connection to 192.168.226.197:22.
/var/lib/jenkins/.ssh/known_hosts [SSH] No Known Hosts file was found at /var/lib/jenkins/.ssh/known_hosts. Please ensure one is created at this path and that Jenkins can read it.
Key exchange was not finished, connection is closed.
java.io.IOException: There was a problem while connecting to 192.168.226.197:22
    at com.trilead.ssh2.Connection.connect(Connection.java:834)
    at com.trilead.ssh2.Connection.connect(Connection.java:703)
    at com.trilead.ssh2.Connection.connect(Connection.java:617)
    at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:1284)
    at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:804)
    at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:793)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Key exchange was not finished, connection is closed.
    at com.trilead.ssh2.transport.KexManager.getOrWaitForConnectionInfo(KexManager.java:95)
    at com.trilead.ssh2.transport.TransportManager.getConnectionInfo(TransportManager.java:237)
    at com.trilead.ssh2.Connection.connect(Connection.java:786)
    ... 9 more
Caused by: java.io.IOException: The server hostkey was not accepted by the verifier callback
    at com.trilead.ssh2.transport.KexManager.handleMessage(KexManager.java:548)
    at com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:790)
    at com.trilead.ssh2.transport.TransportManager$1.run(TransportManager.java:502)
    ... 1 more
[11/01/17 12:16:15] Launch failed - cleaning up connection
[11/01/17 12:16:15] [SSH] Connection closed.

在代理配置中,对于“主机密钥验证策略”,您可能有“已知主机文件验证策略””。 但是,当master启动ssh连接时,它不会更新已知的主机文件。 因此,您可以尝试手动执行ssh命令来启动连接并适当地更新文件

当然,您可以通过设置“非验证验证策略””来禁用“知道主机文件验证策略”,但这是不安全的

/var/lib/jenkins/.ssh/Known_Hosts中未找到已知主机文件。请确保在该路径上创建了一个,并且Jenkins可以读取该路径

在主机的机器上,您可以使用ssh copy id命令连接到代理:

ssh-copy-id [-p agent-ssh-port] agent-user@agent-hostname
在主机上,重新启动Jenkins节点中的代理