当前位置: 首页 > news >正文

Java 使用 SSHJ 执行 SSH 命令和 SFTP 文件上传和下载

✅ 推荐:使用 sshj(客户端连接 SSH)
适合:远程登录服务器、执行命令、上传/下载文件等。

❌ 不推荐:使用 jsch(客户端连接 SSH)
不支持 ssh 新版本算法。

🔧 Maven 依赖

<dependency><groupId>com.hierynomus</groupId><artifactId>sshj</artifactId><version>0.40.0</version> <!-- 建议使用最新版本 -->
</dependency>

✅ Java 示例:执行命令

import net.schmizz.sshj.SSHClient;
import net.schmizz.sshj.connection.channel.direct.Session;
import net.schmizz.sshj.transport.verification.PromiscuousVerifier;public class SshjExecExample {public static void main(String[] args) {String host = "your.server.ip";String user = "root";String password = "your_password";try (SSHClient ssh = new SSHClient()) {ssh.addHostKeyVerifier(new PromiscuousVerifier()); // 跳过 host key 验证ssh.connect(host);ssh.authPassword(user, password);try (Session session = ssh.startSession()) {Session.Command cmd = session.exec("uname -a");System.out.println(new String(cmd.getInputStream().readAllBytes()));cmd.join();}ssh.disconnect();} catch (Exception e) {e.printStackTrace();}}
}

✅ Java 示例:上传文件(SFTP)

import net.schmizz.sshj.SSHClient;
import net.schmizz.sshj.sftp.SFTPClient;
import net.schmizz.sshj.transport.verification.PromiscuousVerifier;import java.io.File;
import java.io.IOException;public class SshjUploadExample {public static void main(String[] args) throws IOException {String host = "your.server.ip";String user = "root";String password = "your_password";SSHClient ssh = new SSHClient();ssh.addHostKeyVerifier(new PromiscuousVerifier());ssh.connect(host);ssh.authPassword(user, password);SFTPClient sftp = ssh.newSFTPClient();sftp.put(new File("local.txt").getPath(), "/root/remote.txt");sftp.close();ssh.disconnect();}
}
http://www.lryc.cn/news/614652.html

相关文章:

  • 【前端后端部署】将前后端项目部署到云服务器
  • Redis(④-消息队列削峰)
  • 吴恩达 深度学习笔记
  • Coze Studio 概览(九)--插件管理
  • 配电线路故障定位在线监测装置的技术解析与应用价值
  • 应急响应流程
  • 基于 C++ 的湍流数值模拟理论报告
  • 从零构建桌面写作软件的书籍管理系统:Electron + Vue 3 实战指南
  • 中小业务遭遇网络攻击,防护能力不足的解决办法​
  • electron 静默安装同时安装完成后自动启动(nsis)
  • Spark在什么情况下CBO才会判断失误,如何避免
  • 服务器登上去,显示 failed to send WATCHDOG 重启有效吗?
  • Uber的MySQL实践(一)——学习笔记
  • I/O原理与服务。
  • 智慧交通场景下 mAP↑28%:陌讯多模态融合算法实战解析
  • OpenAI 开源模型 GPT-OSS MCP服务器深度解密:从工具集成到系统提示全自动化,浏览器+Python无缝协同的底层逻辑
  • 微软Azure AI Foundry正式上线GPT-5系列模型
  • CORS 跨域问题 Next.js 跨域问题放通
  • 《从零构建大语言模型》学习笔记2,文本数据处理1(以及tiktoken库无法下载gpt2参数,调用get_encoding时SSL超时的解决方法)
  • 中国的超算中心使用情况如何?是否算力过剩
  • Eyevinn 彻底改变开源部署模式
  • 初步认识AMSU-A/B、HIRS-3/4、MHS、ATMS、GOES
  • 字典列表依据数值键排序
  • 【跨国数仓迁移最佳实践5】MaxCompute近线查询解决方案助力物流电商等实时场景实现高效查询
  • 防火墙安全作用及 firewalld 交互、端口配置
  • zookeeper3.8.4安装以及客户端C++api编译
  • hyper-v虚拟机启动失败:Virtual Pci Express Port无法打开电源,因为发生错误,找不到即插即用设备
  • ESP32-menuconfig(2) -- Application manager
  • Lazada东南亚矩阵营销破局:指纹手机如何以“批量智控+数据中枢”重构运营生态
  • Dart关键字完全指南:从基础到高级用法详解