我想将Jenkins阿根连接到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.
字符串
节点配置:
- Start-Method:通过SSH启动代理
- 主机名:是IP
- 访问数据:我为SSH访问创建的用户- >公钥在代理节点上的授权密钥中
如果我在我的控制器上作为用户“jenkins”,并做一个ssh jenkins@<IP>
,我可以登录没有问题(公钥是代理)。
为什么它不适用于“UI-Jenkins”。
Jenkins-版本:1.658
操作系统:Ubuntu 14.04
SSH-Slave Plugin:1.26
5条答案
按热度按时间a5g8bdjr1#
这就“解决”了问题:
“解决方法是在Jenkins代理的/etc/ssh/sshd_config中注解掉MAC和KexAlgorithm行,并重新启动sshd(Ubuntu上的服务ssh重新启动)
更新:截至2017-04-29,该问题已得到解决
Jenkins controller fails to connect to the agent over SSH
chy5wohz2#
我想把我的经历放在这个帖子里:我的环境有一个Windows主服务器和混合的Windows和Linux代理。一个Windows代理拒绝连接到主服务器,即使在主服务器将“jenkins-agent”和其他支持文件推送到代理之后。
这个代理安装了6个不同版本的JDK和JRE。我对所有版本进行了重新安装,只重新安装了我们需要的最新JDK,并设置了JAVA_HOME。这修复了连接问题。
hgncfbus3#
在目标节点上执行此命令。
sudo -i su -c 'sed -i -e“s/MACs /MACs hmac-sha1,/g”/etc/ssh/sshd_config; service sshd restart'
ryevplcw4#
最近在使用Docker时遇到了这个问题
找到Java路径
字符串
导出Java路径。在本例中,我使用docker-compose
型
主机仍然抱怨Java的路径,因为
/opt/java/openjdk/bin/java
不在预期的路径中型
在java路径和docker容器中的一个预期路径之间创建一个符号链接(这可以在Dockerfile中自动完成)
型
tyky79it5#
也有同样的问题,通过将从服务器的SSH指纹添加到主服务器来解决。
从master运行此命令:
字符串
或日志输出中显示的任何known_hosts文件路径