使用ganymed-ssh2连接linux报错 Cannot negotiate, proposals do not match

news2024/10/5 0:25:20

ganymed-ssh2连接linux报错

    • 背景
    • 报错信息
    • 解决方案:
    • 运行成功

背景

最近有个项目,需要在Linux下的服务器内写了一部分Python脚本,业务处理却是在Java内,那么就想能不能在Java里面,来远程执行Linux下的Python脚本,就是把shell命令写到Java里面。于是上网查了下,还真有第三方jar库,ganymed-ssh2。专门给java提供远程执行ssh的一个第三方jar包,于是一顿操作接入后,一执行,发现报错!!相信很多同学第一次接入也会报这个错误,看看是不是和大家的一样。

报错信息

Caused by: java.io.IOException: There was a problem while talking to 127.0.0.1:22
at ch.ethz.ssh2.Connection.connect(Connection.java:642)
at com.ultrapower.driver.resdriver.transport.SSHProtocol.ini(SSHProtocol.java:94)2 more
Caused by: java.io.IOException: Key exchange was not finished, connection is closed.
at ch.ethz.ssh2.transport.KexManager.getOrWaitForConnectionInfo(KexManager.java:90)
at ch.ethz.ssh2.transport.TransportManager.getConnectionInfo(TransportManager.java:221)
at ch.ethz.ssh2.Connection.connect(Connection.java:603)3 more
Caused by: java.io.IOException: Cannot negotiate, proposals do not match.
at ch.ethz.ssh2.transport.KexManager.handleMessage(KexManager.java:411)
at ch.ethz.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:604)
at ch.ethz.ssh2.transport.TransportManager$1.run(TransportManager.java:315)
at java.lang.Thread.run(Unknown Source)

解决方案:

这个报错是因为Connect.connect()在连接的时候 authenticated =为false,也就是说认证没有通过,导致的连接失败。

在这里插入图片描述
这是因为算法加密的不同导致的,我们可以在Linux下打开ssh的配置文件进行修改。

vim /etc/ssh/sshd_config

然后再最后面,添加该信息即可。

KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org

在这里插入图片描述

最后不要忘记了重启sshd服务

systemctl restart sshd.service

运行成功

然后我们再运行下代码,我这边执行的shell命令是ls,即在root目录下,列出当前文件夹。发现完美解决。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/699406.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:使用Python连接网络摄像头

使用Python连接网络摄像头 网络摄像头是现代生活中不可或缺的设备之一,其允许用户在远程位置查看实时视频流。Python语言提供了强大的工具来连接和控制网络摄像头。本文将向您展示如何使用Python连接网络摄像头以及如何将视频流数据流式传输到本地计算机。 环境设…

【AUTOSAR】BMS开发实际项目讲解(十九)----电池管理系统系统设计电池单体过放后再充电保护

电池单体过放后再充电保护 关联的系统需求 TSR-BMS-2101、TSR-BMS-2102、TSR-BMS-2103、TSR-BMS-2104、TSR-BMS-2105、TSR-BMS-2106、TSR-BMS-2107、TSR-BMS-2108、TSR-BMS-2109、TSR-BMS-2110、TSR-BMS-2111、TSR-BMS-2112、TSR-BMS-2113、TSR-BMS-2114、TSR-BMS-2115、TSR-B…

七年老Android推荐 : 日常开发中好用的工具 (一)

1. 前言 作为一名拥有七年经验的Android开发工程师,在日常开发中,总希望能提升自己的开发效率,对此也积累了一些工具,本文对此总结了一些好用的工具。 2. 视频转GIF工具 我们在写博客的时候,常常要录屏,…

leetcode:2000. 反转单词前缀(python3解法)

难度:简单 给你一个下标从 0 开始的字符串 word 和一个字符 ch 。找出 ch 第一次出现的下标 i ,反转 word 中从下标 0 开始、直到下标 i 结束(含下标 i )的那段字符。如果 word 中不存在字符 ch ,则无需进行任何操作。…

智云通CRM:在谈判中如何避免被客户利用的陷阱?

智云通CRM系统是一款专业的客户关系管理系统,帮助企业实现客户管理的数字化转型。在日常销售工作中,销售人员经常会面临各种问题和质疑,良好的应对技巧和回答方法对于维护好客户关系、促成交易非常重要。下面将介绍一些经常会被客户问到的问题…

从源码全面解析 dubbo 服务端服务调用的来龙去脉

👏作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主📕系列专栏:Java设计模式、Spring源码系列、Netty源码系列、Kafka源码系列、JUC源码…

echatrs-地图,根据数据进行点状显示和指向

echarts地址:https://www.makeapie.cn/echarts var data2 [{ name: 海门, value: 9 },{ name: 鄂尔多斯, value: 12 },{ name: 招远, value: 12 },{ name: 舟山, value: 12 },{ name: 齐齐哈尔, value: 14 },{ name: 盐城, value: 15 },{ name: 赤峰, value: 16 },…

JMeter 后置处理器之JSON提取器

目录 前言: 测试环境 插件介绍 插件参数 插件使用示例 JSON-PATH表达式介绍 操作符 函数 过滤器操作符 JSON PATH示例 前言: JMeter是一个功能强大的性能测试工具,它提供了许多后置处理器来处理和提取测试结果。其中一个常用的后…

【强化学习】常用算法之一 “PPO”

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

Android 操作系统日历完成提醒功能 附带开关闹钟 适配高版本安卓

Android 操作系统日历完成提醒功能 附带开关闹钟 如果想要一个稳定且不用担心生命周期的提醒方式,可以试试利用系统日历去完成任务的提醒或某个活动的预约。 项目仓库地址在文末 环境 Java 11 Android sdk 30 Gredle 7.1 minSdkVersion 23 targetSdkVersion 30测…

js 纯前端实现 重新部署 通知用户刷新网页

需求:有时候上完线,用户还停留在老的页面,用户不知道网页重新部署了,跳转页面的时候有时候js连接hash变了导致报错跳不过去,并且用户体验不到新功能,需要进行优化,每当打包发版后客户进入系统就…

F#奇妙游(1):F#浅尝

F#奇妙游(1):F#浅尝 是什么 F#是.NET平台的OCaml。 这句话很欠打,.NET和OCaml前者知道的人有一些,后者就很少了。.NET平台是一个开源的软件平台,早期由微软主导,目前已经开源,由.…

如何使用CSS Grid 居中 div

本文翻译自 How to Center a Div Using CSS Grid,作者:Fimber Elemuwa, Ralph Mason。 略有删改 在本文中,我们将介绍使用CSS Grid在水平和垂直方向上居中div的五种方法,当然这些技术可用于任何类型的元素。 初始化 我们首先创建…

ASP.Net Core Web API项目发布到IIS(二)

目录 一.启动并配置IIS环境 1.启用或关闭window功能 2.设置万维网服务 3.点击确定等待配置更改 二.创建新的Web网站并进行设置 1.打开IIS管理 2.配置默认的网站 3.创建新的网站 4.测试 三.可能出现的问题 1.404错误 前一篇已经记录了如何创建项目并发布到文件夹&#x…

配置管理数据库(CMDB)

什么是CMDB 配置管理数据库(Configuration Management Database,简称CMDB)是组织IT基础结构中配置项(Configuration Item)及其关系的数据库。CI指示了任何需要管理的、以确保成功交付服务的项目。CI可以是一个具体的实体,如服务器、交换机,也…

软件测试的自动化工具

在软件开发过程中,测试是必不可少的一个环节。而在测试中,测试人员需要花费大量的时间和精力进行手动测试,这不仅费时费力,而且效率较低。因此,自动化测试工具的出现为测试人员提供了更加便捷高效的测试方法。本文将介…

认识CSS

hi,大家好,今天我们来简单认识一下前端三剑客之一的CSS 目录 🐷CSS是什么🐷基本语法规范🐷CSS引入方式🥝内部样式🥝外部样式🥝内联样式 🐷认识选择器🍉标签选择器🍉类选…

最优化--坐标下降法--凸优化问题与凸集

目录 坐标下降法 概念 坐标下降法的步骤 案例演示 数值优化算法面临的问题 凸优化问题与凸集 凸优化问题 性质 优点 凸集 性质 坐标下降法 概念 坐标下降法是一种非梯度优化算法。算法在每次迭代中,在当前点处沿一个坐标方向 进行一维搜索以求得一个函…

Shell、Xshell以及两者的关系

编程语言分为编译型语言(需要使用编译器生成可执行的文件)和解释型语言(需要解释器,不需要编译器)。shell语言是一种解释型语言所使用的解释器有bash解释器或者sh解释器等。我们通过shell命令使之和操作系统交互&#…

漏洞复现-网康(奇安信)NGFW下一代防火墙远程命令执行

漏洞描述 网康下一代防火墙(NGFW)是网康科技推出的一款可全面应对网络威胁的高性能应用层防火墙。该NGFW存在远程命令执行漏洞,攻击者可通过构造特殊请求执行系统命令。凭借超强的应用识别能力,下一代防火墙可深入洞察网络流量中…