1.连接至服务器:ssh hp@10.10.17.16 -p 5555

   下载文件:scp -r hp@10.10.17.16:/ccc(服务器路径,文件夹下所有文件)  /path(本地路径)

   上传文件:scp /ccc(本地文件路径)

2.文件上传:

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Vector; import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session; public class Test {
public static void main(String[] args) {
try {
sshSftp("10.10.17.19", "lenovo", "123456", 5555);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void sshSftp(String ip, String user, String psw ,int port) throws Exception{
Session session = null;
ChannelSftp channel = null; JSch jsch = new JSch(); if(port <=0){
//连接服务器,采用默认端口
session = jsch.getSession(user, ip);
}else{
//采用指定的端口连接服务器
session = jsch.getSession(user, ip ,port);
} //如果服务器连接不上,则抛出异常
if (session == null) {
throw new Exception("session is null");
} //设置第一次登陆的时候提示,可选值:(ask | yes | no)
session.setConfig("StrictHostKeyChecking", "no");
//设置登陆主机的密码
session.setPassword(psw);//设置密码 //设置登陆超时时间
session.connect(); try {
//创建sftp通信通道
channel = (ChannelSftp) session.openChannel("sftp");
channel.connect(1000);
ChannelSftp sftp = (ChannelSftp) channel; //进入服务器指定的文件夹
sftp.cd("1047"); //列出服务器指定的文件列表
Vector v = sftp.ls("*.txt");
for(int i=0;i<v.size();i++){
System.out.println(v.get(i));
} //以下代码实现从本地上传一个文件到服务器,如果要实现下载,对换以下流就可以了
OutputStream outstream = sftp.put("666666666.txt");
InputStream instream = new FileInputStream(new File("c:/print.txt")); byte b[] = new byte[1024];
int n;
while ((n = instream.read(b)) != -1) {
outstream.write(b, 0, n);
} outstream.flush();
outstream.close();
instream.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
session.disconnect();
channel.disconnect();
}
}
}

3.文件下载:

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Vector; import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session; public class Test2 {
public static void main(String[] args) {
try {
sshSftp("10.10.17.19", "lenovo", "123456", 5555);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void sshSftp(String ip, String user, String psw ,int port) throws Exception{
Session session = null;
ChannelSftp channel = null; JSch jsch = new JSch(); if(port <=0){
//连接服务器,采用默认端口
session = jsch.getSession(user, ip);
}else{
//采用指定的端口连接服务器
session = jsch.getSession(user, ip ,port);
} //如果服务器连接不上,则抛出异常
if (session == null) {
throw new Exception("session is null");
} //设置第一次登陆的时候提示,可选值:(ask | yes | no)
session.setConfig("StrictHostKeyChecking", "no");
//设置登陆主机的密码
session.setPassword(psw);//设置密码 //设置登陆超时时间
session.connect(); try {
//创建sftp通信通道
channel = (ChannelSftp) session.openChannel("sftp");
channel.connect(1000);
ChannelSftp sftp = (ChannelSftp) channel; //进入服务器指定的文件夹
sftp.cd("1047"); //列出服务器指定的文件列表
Vector v = sftp.ls("*.txt");
for(int i=0;i<v.size();i++){
System.out.println(v.get(i));
} //下载
InputStream instream = sftp.get("666666666.txt");
OutputStream outstream = new FileOutputStream(new File("c:/print.txt")); byte b[] = new byte[1024];
int n;
while ((n = instream.read(b)) != -1) {
outstream.write(b, 0, n);
} outstream.flush();
outstream.close();
instream.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
session.disconnect();
channel.disconnect();
}
}
}

java:ssh连接服务器,实现本地文件上传和下载的更多相关文章

  1. java之Jsch实现Linux的文件上传与下载

    一.JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功 ...

  2. PHPstorm设置连接FTP,进行文件上传、下载、比较

                                                 内容转载自:http://www.cnblogs.com/jikey/p/3486621.html   如何在 ...

  3. 【Linux】方便的SecureCRT文件上传、下载命令

    使用SecureCRT连接服务器,可用命令上传.下载文件,非常方便. > 安装 如果系统报找不到以下命令,那么你可能没有安装软件.安装以下吧. [root@localhost ~]# yum - ...

  4. java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息

    1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...

  5. 将本地文件上传到指定的服务器(HttpWebRequest方法)

    将本地文件上传到指定的服务器(HttpWebRequest方法),通过文件流,带文件名,同文件一同上传的表单文本域及值. ///<summary> /// 将本地文件上传到指定的服务器(H ...

  6. JavaScript进阶(九)JS实现本地文件上传至阿里云服务器

    JS实现本地文件上传至阿里云服务器 前言 在前面的博客< JavaScript进阶(八)JS实现图片预览并导入服务器功能>(点击查看详情)中,实现了JS将本地图片文件预览并上传至阿里云服务 ...

  7. java代码实现ftp服务器的文件上传和下载

    java代码实现文件上传到ftp服务器: 1:ftp服务器安装: 2:ftp服务器的配置: 启动成功: 2:客户端:代码实现文件的上传与下载: 1:依赖jar包: 2:sftpTools   工具类: ...

  8. scp -本地文件上传服务器,指定端口

    scp 命令可以将本地文件上传服务器,或者将服务器上的文件下载到本地, 1.  上传服务器: scp [本地文件目录]  [服务器用户名]@[服务器名]:/[服务器上文件路径] 比如 scp /Doc ...

  9. Java实现FTP文件上传与下载

    实现FTP文件上传与下载可以通过以下两种种方式实现(不知道还有没有其他方式),分别为:1.通过JDK自带的API实现:2.通过Apache提供的API是实现. 第一种方式 package com.cl ...

随机推荐

  1. 合并K个sorted list

    合并k个已经排好序的数列是面试中也比较容易被问到的一个算法,有很多种解决,其中第一时间比较容易想到的解法如下: 对于这三组从小到大的数列: 如此循环,最终就将三个已经排序的数列的数字按从小到大的顺序排 ...

  2. QT一个最简单的openGL例子

    创建一个基类为widget的工程 把文件夹glut64放到代码目录下,文件夹包含以下文件 freeglut.dll freeglut.lib glut.h freeglut.h freeglut_ex ...

  3. Atcoder CODE FESTIVAL 2016 Final G - Zigzag MST[最小生成树]

    题意:$n$个点,$q$次建边,每次建边选定$x,y$,权值$c$,然后接着$(y,x+1,c+1),(x+1,y+1,c+2),(y+1,x+2,c+3),(x+2,y+2,c+4)\dots$(画 ...

  4. 通过CSS实现 文字渐变色 的两种方式

    说明 这次的重点就在于两个属性, background 属性 mask 属性这两个属性分别是两种实现方式的关键. 方式一 解释 <!DOCTYPE html> <html> & ...

  5. charindex函数--->检索字符在字符串中的起始位置

    语法:CHARINDEX(检索字符,被检索字符串) 返回值:检索字符在被检索字符串中的起始位置.

  6. 超好用的富文本编辑器Summernote的使用

    官网地址 中文文档 源码下载地址 Summernote依赖于jquery和bootstrap3/4   所以用时记得引入这俩依赖 奉上引入方法(官网说的很清楚,api也很详细): <!-- in ...

  7. AtCoder AGC038D Unique Path (图论)

    题目链接 https://atcoder.jp/contests/agc038/tasks/agc038_d 题解 orz zjr神仙做法 考虑把所有\(C_i=0\)的提示的两点连边,那么连完之后的 ...

  8. CodeForces 707D Persistent Bookcase ——(巧妙的dfs)

    一个n*m的矩阵,有四种操作: 1.(i,j)处变1: 2.(i,j)处变0: 3.第i行的所有位置1,0反转: 4.回到第k次操作以后的状态: 问每次操作以后整个矩阵里面有多少个1. 其实不好处理的 ...

  9. Idea中使用Maven编码打包时中文乱码的解决办法

    -Dfile.encoding=GBK

  10. 「UVA12293」 Box Game

    题目链接 戳我 \(Solution\) 这道题第一眼看样例,猜了个结论偶数\(Alice\)赢,否则\(Bob\)赢,打了一发,交了上去果不其然的\(wa\)了,第二次猜\(2\)的幂次方\(Ali ...