Jsch连接服务器失败解决办法其他工具可以连接成功但是Jsch不行解决办法

简介: Jsch连接服务器失败解决办法其他工具可以连接成功但是Jsch不行解决办法

1.问题描述:

  1. 检查用户权限:存在权限配置上的差异。
  2. 检查SSH服务配置:SSH配置,可能存在一些差异。检查/etc/ssh/sshd_config文件,确保其中没有禁用密码验证或限制了登录用户的权限。
  3. 检查防火墙设置:防火墙可能会阻止SSH连接。防火墙设置允许SSH连接。
  4. 尝试其他认证方式:如果密码认证不起作用,可以尝试使用公钥认证。在JSch中,你可以使用addIdentity方法添加私钥文件路径,然后使用publickey验证方式进行连接。
  5. 更新JSch库:如果以上方法都不起作用
  6. 查看日志:查看/var/log/auth.log会提供有关认证失败的详细信息,有助于确定问题的根本原因。

2.代码配置

import com.jcraft.jsch.*;  
  
public class JSchExample {  
    public static void main(String[] args) {  
        String host = "your-remote-host";  
        String user = "your-username";  
        String password = "your-password";  
  
        try {  
            JSch jsch = new JSch();  
            jsch.setConfig("PreferredAuthentications", "publickey,keyboard-interactive,password,aes128-ctr");  
            jsch.setConfig("KexAlgorithms", "aes128-ctr");  
            jsch.setConfig("HostKeyAlgorithms", "ssh-rsa");  
              
            Session session = jsch.getSession(user, host, 22);  
            session.setPassword(password);  
            session.connect();  
              
            // 进行其他操作...  
              
            session.disconnect();  
        } catch (JSchException e) {  
            e.printStackTrace();  
        }  
    }  
}

3.还有一种这种不建议不太安全

import com.jcraft.jsch.*;  
  
public class JSchExample {  
    public static void main(String[] args) {  
        String host = "your-remote-host";  
        String user = "your-username";  
        String password = "your-password";  
  
        try {  
            JSch jsch = new JSch();  
            jsch.setConfig("PreferredAuthentications", "publickey,keyboard-interactive,password,diffie-hellman-group1-sha1");  
            jsch.setConfig("KexAlgorithms", "diffie-hellman-group1-sha1");  
            jsch.setConfig("HostKeyAlgorithms", "ssh-rsa");  
              
            Session session = jsch.getSession(user, host, 22);  
            session.setPassword(password);  
            session.connect();  
              
            // 进行其他操作...  
              
            session.disconnect();  
        } catch (JSchException e) {  
            e.printStackTrace();  
        }  
    }  
}

4.如果以上都不行启用终极大法

修改路径:/etc/ssh下的sshd_config
 
在结尾添加: KexAlgorithms +diffie-hellman-group1-sha1
 
然后重启sshd:service sshd restart
 
如果还不行可以修改:ssh_config  也是添加 :KexAlgorithms +diffie-hellman-group1-sha1
 
java代码按下面方式编写:
 
Session session = null;
 
JSch jsch = new JSch();
 
try {
 
session = jsch.getSession(username, host, port);
 
session.setPassword(password);
 
session.setTimeout(5 * 60 * 1000);
 
session.setConfig("StrictHostKeyChecking", "no");//是否验证主机秘钥
 
Properties sshConfig = new Properties();
 
sshConfig.put("kex", "diffie-hellman-group1-sha1");
 
session.connect();
 
} catch (Exception e) {
 
throw new Exception("连接linux服务器时出错:" + e.getMessage());
 
}
相关文章
|
2月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
451 1
|
3月前
|
安全
基于Reactor模式的高性能服务器之Acceptor组件(处理连接)
本节介绍了对底层 Socket 进行封装的设计与实现,通过 `Socket` 类隐藏系统调用细节,提供简洁、安全、可读性强的接口。重点包括 `Socket` 类的核心作用(管理 `sockfd_`)、成员函数的功能(如绑定地址、监听、接受连接等),以及 `Acceptor` 组件的职责:监听连接、接收新客户端连接并分发给上层处理。同时说明了 `Acceptor` 与 `EventLoop` 和 `TcpServer` 的协作关系,并展示了其成员变量和关键函数的工作机制。
74 2
|
2月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle客户端与服务器端连接建立的过程
Oracle数据库采用客户端-服务器架构,客户端通过其网络环境与服务器通信,实现数据库访问。监听程序负责建立连接,通过命令lsnrctl可启动、停止及查看监听状态。本文介绍了监听器的作用及相关基础管理操作。
104 0
|
5月前
|
运维 Linux 网络安全
国产服务器管理工具对比
本内容以表格形式对比了五款工具(宝塔面板、1Panel、gmSSH、Xterminal)的功能定位、用户界面、核心功能、适用场景等关键维度。涵盖服务器运维、容器化管理、SSH客户端及跨平台支持等方面,帮助用户根据需求选择合适的工具。适合开发者、运维人员及中小企业技术团队参考。
|
11月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
215 9
|
7月前
|
自然语言处理 安全 开发工具
分享一个纯净无广、原版操作系统、开发人员工具、服务器等资源免费下载的网站
分享一个纯净无广、原版操作系统、开发人员工具、服务器等资源免费下载的网站
301 4
|
7月前
|
运维 安全 开发工具
GitHub 热门开源运维工具 Websoft9:如何实现服务器管理效率翻倍?
Websoft9 提供 200+ 开源应用一键部署,支持容器化隔离、GitOps 自动化和企业级安全防护,助力服务器管理效率提升 80%。
216 1
|
10月前
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
641 6
|
11月前
|
监控 Kubernetes 安全
如何设置一个有效的远程管理工具来简化服务器的维护工作?
如何设置一个有效的远程管理工具来简化服务器的维护工作?
101 1

热门文章

最新文章