我想连接一个从站到Master-Jenkins,但当尝试连接时,我得到以下错误:
[05/02/18 15:26:59] [SSH] Opening SSH connection to <IP>
Key exchange was not finished, connection is closed.
java.io.IOException: There was a problem while connecting to <IP>:22
at com.trilead.ssh2.Connection.connect(Connection.java:818)
at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:1324)
at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:831)
at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:820)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
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:93)
at com.trilead.ssh2.transport.TransportManager.getConnectionInfo(TransportManager.java:230)
at com.trilead.ssh2.Connection.connect(Connection.java:770)
... 7 more
Caused by: java.io.IOException: Cannot negotiate, proposals do not match.
at com.trilead.ssh2.transport.KexManager.handleMessage(KexManager.java:405)
at com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:777)
at com.trilead.ssh2.transport.TransportManager$1.run(TransportManager.java:489)
... 1 more
[05/02/18 15:26:59] Launch failed - cleaning up connection
[05/02/18 15:26:59] [SSH] Connection closed.
节点配置:-启动方式:通过SSH启动从机-主机名:IP -访问数据:为SSH访问创建的用户i- >公共密钥在从属节点上的授权密钥中
如果我在我的主人作为用户“Jenkins”,并做一个ssh jenkins@<IP>
,我可以登录没有问题(公钥是从)。
为什么它不适用于“UI-Jenkins”。
Jenkins版本:1.658
操作系统:Ubuntu 14.04
SSH-Slave插件:1.26
5条答案
按热度按时间kgqe7b3p1#
这就“解决”了问题:
“解决方法是在Jenkins Slave的/etc/ssh/sshd_config中注解掉MAC和KexAlgorithm行,并重新启动sshd(Ubuntu上的服务ssh重新启动)
更新:截至2017年4月29日,问题已得到解决“
Jenkins master fails to connect to the slave over SSH
pieyvz9o2#
我想把我的经历写在这篇文章里:我的环境有一个Windows主代理,以及混合的Windows和Linux代理。一个Windows代理拒绝连接到主服务器,即使在主服务器将“jenkins-agent”和其他支持文件推送到代理之后。
此代理安装了6个不同版本的JDK和JRE。我重新安装了所有这些,只重新安装了我们需要的最新JDK,并设置了JAVA_HOME。这解决了连接问题。
hof1towb3#
在目标节点上执行此命令。
sudo -i su -c 'sed -i -e“s/MAC/MAC hmac-sha1,/g”/etc/ssh/sshd_config;服务sshd重新启动'
fcwjkofz4#
最近在使用Docker时遇到了这个问题
找到Java路径
导出Java路径。在本例中,我使用docker-compose
主机仍然抱怨Java的路径,因为
/opt/java/openjdk/bin/java
不在预期的路径中在java路径和docker容器中的一个预期路径之间创建一个符号链接(这可以在Dockerfile中自动完成)
vxbzzdmp5#
也有同样的问题,通过将从服务器的SSH指纹添加到主服务器来解决。
从master运行此命令:
或日志输出中显示的任何known_hosts文件路径