一、下载并安装FTP客户端,例如我现在用的Xftp6。
xftp6中文版是一款高效实用的MS windows 平台专用SFTP、FTP 文件传输工具。xftp6中文版功能强劲,便捷好用,支持MS windows 用户安全地在 UNIX/Linux 和 Windows PC 之间进行文件传输。
二、点击文件->新建
三、在弹出的对话框中输入
四、文件->打开创建的会话, 选择会话,点连接
五、在进入的界面,可以看到服务器文件,找到指定目录然后右键->传输就可以了。
写在最后:
SFTP是SSH File Transfer Protocol的缩写,安全文件传送协议。SFTP与FTP有着几乎一样的语法和功能。SFTP为SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
package jschimport java.io.File
import java.io.FileInputStream
import java.util.Properties
import com.jcraft.jsch.Channel
import com.jcraft.jsch.ChannelSftp
import com.jcraft.jsch.JSch
import com.jcraft.jsch.JSchException
import com.jcraft.jsch.Session
public class Test {
protected String host//sftp服务器ip
protected String username//用户名
protected String password//密码
protected String privateKey//密钥文件路径
protected String passphrase//密钥口令
protected int port = 22//默认的sftp端口号是22
/**
* 获取连接
* @return channel
*/
public ChannelSftp connectSFTP() {
JSch jsch = new JSch()
Channel channel = null
try {
if (privateKey != null && !"".equals(privateKey)) {
//使用密钥验证方式,密钥可以使有口令的密钥,也可以是没有口令的密钥
if (passphrase != null && "".equals(passphrase)) {
jsch.addIdentity(privateKey, passphrase)
} else {
jsch.addIdentity(privateKey)
}
}
Session session = jsch.getSession(username, host, port)
if (password != null && !"".equals(password)) {
session.setPassword(password)
}
Properties sshConfig = new Properties()
sshConfig.put("StrictHostKeyChecking", "no")// do not verify host key
session.setConfig(sshConfig)
// session.setTimeout(timeout)
session.setServerAliveInterval(92000)
session.connect()
//参数sftp指明要打开的连接是sftp连接
channel = session.openChannel("sftp")
channel.connect()
} catch (JSchException e) {
e.printStackTrace()
}
return (ChannelSftp) channel
}
/**
* 上传文件
*
* @param directory
* 上传的目录
* @param uploadFile
* 要上传的文件
* @param sftp
*/
public void upload(String directory, String uploadFile, ChannelSftp sftp) {
try {
sftp.cd(directory)
File file = new File(uploadFile)
sftp.put(new FileInputStream(file), file.getName())
} catch (Exception e) {
e.printStackTrace()
}
}
/**
* 下载文件
*
* @param directory
* 下载目录
* @param downloadFile
* 下载的文件
* @param saveFile
* 存在本地的路径
* @param sftp
*/
public void download(String directory, String downloadFile,
String saveFile, ChannelSftp sftp) {
try {
sftp.cd(directory)
sftp.get(downloadFile,saveFile)
} catch (Exception e) {
e.printStackTrace()
}
}
/**
* 删除文件
*
* @param directory
* 要删除文件所在目录
* @param deleteFile
* 要删除的文件
* @param sftp
*/
public void delete(String directory, String deleteFile, ChannelSftp sftp) {
try {
sftp.cd(directory)
sftp.rm(deleteFile)
} catch (Exception e) {
e.printStackTrace()
}
}
public void disconnected(ChannelSftp sftp){
if (sftp != null) {
try {
sftp.getSession().disconnect()
} catch (JSchException e) {
e.printStackTrace()
}
sftp.disconnect()
}
}
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)