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());
 
}
相关文章
|
5天前
|
运维 数据安全/隐私保护
Finalshell 私钥连接服务器
Finalshell 私钥连接服务器
27 0
|
2天前
|
监控 物联网 测试技术
【好用的个人工具】使用Docker部署Dashdot服务器仪表盘
【5月更文挑战第15天】使用Docker部署Dashdot服务器仪表盘
34 12
|
5天前
|
监控 安全 Cloud Native
【云原生之Docker实战】使用Docker部署Ward服务器监控工具
【5月更文挑战第11天】使用Docker部署Ward服务器监控工具
22 3
|
5天前
|
Oracle Java 关系型数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
17 6
|
5天前
|
监控 Cloud Native 测试技术
云原生之使用Docker部署ServerBee服务器监控工具
【5月更文挑战第6天】云原生之使用Docker部署ServerBee服务器监控工具
14 1
|
5天前
|
前端开发 安全 搜索推荐
【专栏】ngrok` 是一款让本地服务器暴露到公网的工具,提供外网访问、临时公网地址、安全隧道及实时更新功能
`【4月更文挑战第29天】ngrok` 是一款让本地服务器暴露到公网的工具,提供外网访问、临时公网地址、安全隧道及实时更新功能。使用简单,包括下载客户端、注册认证、启动本地服务和执行命令。在前端开发中,ngrok 用于本地开发调试、跨设备测试、前后端联调、演示分享和应急处理。它提高了开发效率,简化网络环境和部署问题。无论是移动应用测试还是团队协作,ngrok 都能发挥关键作用,是前端开发者必备神器。尝试使用 ngrok,提升你的开发体验。
|
5天前
|
安全 算法 Linux
【专栏】Linux 服务器还有漏洞?OpenVAS 是一款开源的漏洞扫描工具,用于全面评估 Linux 服务器安全
【4月更文挑战第28天】OpenVAS 是一款开源的漏洞扫描工具,用于全面评估 Linux 服务器安全。它具有全面性、准确性和实时性的特点,能扫描各种设备并及时发现安全漏洞。使用 OpenVAS 包括安装、配置和执行扫描,以及分析结果并采取修复措施。在使用过程中应注意扫描时间、范围和策略的选择。通过定期检查和修复漏洞,结合其他安全措施,可以提升服务器安全性。OpenVAS 是保障 Linux 服务器安全的重要工具,但安全维护也需要持续学习和适应新挑战。
|
5天前
|
监控 Linux 网络安全
Linux服务器如何查询连接服务器的IP
【4月更文挑战第17天】Linux服务器如何查询连接服务器的IP
21 1
|
5天前
|
弹性计算 运维 监控
解密阿里云弹性计算:探索云服务器ECS的核心功能
阿里云ECS是核心计算服务,提供弹性云服务器资源,支持实例按需配置、集群管理和监控,集成安全防护,确保服务稳定、安全,助力高效业务运营。
102 0
|
22小时前
|
存储 弹性计算 监控
【阿里云弹性计算】深入阿里云ECS配置选择:CPU、内存与存储的最优搭配策略
【5月更文挑战第20天】阿里云ECS提供多种实例类型满足不同需求,如通用型、计算型、内存型等。选择CPU时,通用应用可选1-2核,计算密集型应用推荐4核以上。内存选择要考虑应用类型,内存密集型至少4GB起。存储方面,系统盘和数据盘容量依据应用和数据量决定,高性能应用可选SSD或高效云盘。结合业务特点和预算制定配置方案,并通过监控应用性能适时调整,确保资源最优利用。示例代码展示了使用阿里云CLI创建ECS实例的过程。
23 5

热门文章

最新文章