当前位置:首页 » 文件传输 » ssh上传
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

ssh上传

发布时间: 2022-01-25 23:34:31

A. ssh secure shell 怎么上传文件

ssh secure shell 怎么上传文件
FTP(File Transfer Protocol)是 Internet 上用来传送文件的协议(文件传输协议)。它是为了我们能够在 Internet 上互相传送文件而制定的的文件传送标准,规定了 Internet 上文件如何传送。也就是说,通过 FTP 协议,我们就可以跟 Internet 上的 FTP 服务器进行文件的上传(Upload)或下载(Download)等动作。

和其他 Internet 应用一样,FTP 也是依赖于客户程序/服务器关系的概念。在 Internet 上有一些网站,它们依照 FTP 协议提供服务,让网友们进行文件的存取,这些网站就是 FTP 服务器。网上的用户要连上 FTP 服务器,就要用到 FPT 的客户端软件,通常 Windows 都有“ftp”命令,这实际就是一个命令行的 FTP 客户程序,另外常用的 FTP 客户程序还有 CuteFTP、Ws_FTP、FTP Explorer等。

要连上 FTP 服务器(即“登陆”),必须要有该 FTP 服务器的帐号。如果是该服务器主机的注册客户,你将会有一个 FTP 登陆帐号和密码,就凭这个帐号密码连上该服务器。但 Internet 上有很大一部分 FTP 服务器被称为“匿名”(Anonymous)FTP 服务器。这类服务器的目的是向公众提供文件拷贝服务,因此,不要求用户事先在该服务器进行登记注册。

B. ssh 多文件上传,怎么实现

多附件struts 1.x,以下代码由agatezone提供。
1.Jsp要用javascript
2.form必须enctype="multipart/form-data"
3.action要用form.getMultipartRequestHandler()获取文件并存储
struts2 更简单,google之。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>struts1.x upload example</title>
<script type="text/javascript">
function addFileField() {
input_filesCount = document.getElementById("filesCount");
input_filesCount.setAttribute("value", parseInt(input_filesCount.getAttribute("value")) + 1)
div_files = document.getElementById("files");
br = document.createElement("br");
file = document.createElement("input");
text = document.createTextNode("File " + input_filesCount.getAttribute("value") + " : ");
file.setAttribute("type", "file");
file.setAttribute("name", "file" + input_filesCount.getAttribute("value"));
div_files.appendChild(text);
div_files.appendChild(file);
div_files.appendChild(br);
}
</script>
</head>
<body>
<form action="upload.do" method="post" enctype="multipart/form-data">
<input id="filesCount" type="hidden" name="filesCount" value="1" />
<div id="files">
File 1 :
<input type="file" name="file1" />
<br />
</div>
<input type="button" onclick="javascript:addFileField();"
value="add a file" />
<br />
<input type="submit" />
</form>
</body>
</html>

---------------------------------------
package cn.agatezone.example.struts1x.upload;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.Hashtable;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

public class UploadAction extends Action {
@SuppressWarnings("unchecked")
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {

String dirPath = getServlet().getServletContext().getRealPath("/") + "upload";
Hashtable fileh = form.getMultipartRequestHandler().getFileElements();
for (Enumeration e = fileh.keys(); e.hasMoreElements();) {
String key = (String) e.nextElement();
try {
FormFile formfile = (FormFile) fileh.get(key);
String filename = formfile.getFileName().trim(); // 文件名
/*
* @注意!!!
* 这里我没有处理中文,但是如果想要中文无问题,
* 可以设置tomcat的server.xml中的URIEncoding="UTF-8"
*
* 但是,要是不设置的话可以自己用代码解决问题!
* 为了简单明了,本例只作为struts1.x上传部分展示。
*/
if (!"".equals(filename)) {
// 不同的浏览器传上的文件名可能有区别,有的是全路径的
// 在这里保存文件
InputStream ins = formfile.getInputStream();
OutputStream os = new FileOutputStream(dirPath + File.separatorChar + filename);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();

}
} catch (Exception ex) {
System.out.println("出错了!\n" + ex);
}
}

return mapping.findForward("success");

}

}

---------------------------------------------------------
锐志陈鹏 专注Java/.Net培训
锐志技术社区:http://www.witshare.org/bbs/

C. 谁有SSH上传下载文件的代码

上传:

package com.wb.ekeng.web.action.file;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;

import com.wb.ekeng.ebo.BO_File;
import com.wb.ekeng.info.INFO_Admin;
import com.wb.ekeng.info.INFO_File;
import com.wb.ekeng.web.action.BaseAction;
import com.wb.ekeng.web.filemanage.File;
import com.wb.ekeng.web.filemanage.SmartUpload;
import com.wb.ekeng.web.util.Convertor;

public class ACT_AddFile extends BaseAction {

public ACT_AddFile() {
super();
}

public ActionForward doExcute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, ActionMessages errors) throws Exception {
//文件保存路径
String strSavePath ="/upload/file/";
//允许上传的文件类型
String strAllowExt ="jpg,jpeg,gif,bmp,txt,java";
//允许上传最大字节数
int maxSize =1048576;
//上传文件
SmartUpload upload=new SmartUpload();
upload.initialize(this.getServlet().getServletConfig(), request, response);
upload.upload("UTF-8");
//获取文件
String[] allowExtList =strAllowExt.split(",");
File fileBuffer =upload.getFiles().getFile(0);
if(fileBuffer.isMissing()){
throw new Exception("error.act.act_addfile.error3");
}

HttpSession session=request.getSession();
INFO_Admin loginAdmin=(INFO_Admin) session.getAttribute("loginadmin");
Long lAdminId=loginAdmin.getId();

String strName=upload.getRequest().getParameter("name");
//如果遇见上传中文文件出现乱码问题,上一句可以改成这样(其他语句参照这): String strName=new String(upload.getRequest().getParameter("name").getBytes(),"UTF-8");
String strNeedPoint=upload.getRequest().getParameter("needpoint");
String strType=upload.getRequest().getParameter("type");
String strDes=upload.getRequest().getParameter("des");

Integer iNeedPoint=null;

//验证参数
if(strName==null||strNeedPoint==null||strType==null||strDes==null){
throw new Exception("error.common.badrequest");
}
this.doValidate(errors,INFO_File.validateName(strName));
this.doValidate(errors,INFO_File.validateNeedPoint(strNeedPoint));
this.doValidate(errors,INFO_File.validateType(strType));
this.doValidate(errors,INFO_File.validateDes(strDes));

//验证文件大小
int FileSize=fileBuffer.getSize();
if(FileSize>maxSize){
this.doValidate(errors,"error.act.act_addfile.error2");
}

//验证文件类型
String strFileExt =fileBuffer.getFileExt();
boolean flag =false;
for(int i=0;i<allowExtList.length;i++) {
if(allowExtList[i].toLowerCase().equals(strFileExt.toLowerCase())){
//找到了匹配的后缀
flag=true;
}
}
if(strFileExt.equals("") || flag ==false){
this.doValidate(errors,"error.act.act_addfile.error1");
}

if(!errors.isEmpty()){
System.out.println(errors.toString());
return null;
}
//参数转换
strName =Convertor.convertHalfToFull(strName);
iNeedPoint=new Integer(strNeedPoint);
Integer iFileSize=Integer.valueOf(FileSize);

//构造saveName
String strSaveName=lAdminId+"_"+BO_File.getNowString()+"."+upload.getFiles().getFile(0).getFileExt();
fileBuffer.saveAs(strSavePath + strSaveName);

//提交数据
BO_File boFile=new BO_File();
boFile.addFile(strName,strType,strDes,strSaveName,iNeedPoint,lAdminId,iFileSize);
return new ActionForward("/admin/main/download/admindownload.do",true);
}
}

下载:
package com.wb.ekeng.web.action.file;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;

import com.wb.ekeng.web.action.BaseAction;
import com.wb.ekeng.ebo.BO_File;
import com.wb.ekeng.info.INFO_File;
import com.wb.ekeng.info.INFO_User;

import com.wb.ekeng.web.filemanage.SmartUpload;

/**
* 备注:
* 文件下载Action
* 输入:
* String fileid
* String userid
* 输出:
*/
public class ACT_Download extends BaseAction {

public ACT_Download() {
super();
}
public ActionForward doExcute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, ActionMessages errors) throws Exception {
HttpSession session =request.getSession();
//获取参数
Long lFileId=null;
String fileId =request.getParameter("fileid");
INFO_User infoUser=(INFO_User)session.getAttribute("loginuser");

//验证参数
if(fileId==null || infoUser.getId() ==null){
throw new Exception("error.common.badrequest");
}
lFileId=new Long(fileId);
BO_File boFile=new BO_File();
INFO_File infoFile =null;

//判断用户是否为第一次下载
接收存储下载资源Id的session,然后判断要下载的资源Id是否没存在于当前登录的下载页表中(即是否是第一次下载),如果是则调用下载扣除积分方法,并把这个资源的Id存入列表中。如果不是,则把标记位置false,直接下载资源,不调用扣除积分的方法。
boolean isFirstDownLoad =true;
ArrayList downFileList =(ArrayList)session.getAttribute("downfilelist");
for(int index =0; index <downFileList.size(); index ++){
Long lFileIdBuffer =(Long)downFileList.get(index);
if(lFileIdBuffer.longValue() ==lFileId.longValue()){
isFirstDownLoad =false;
break;
}
}
if(isFirstDownLoad){
infoFile=boFile.download(lFileId,infoUser.getId());
downFileList.add(lFileId);
}else{
infoFile=boFile.getFile(lFileId);
}
(下面就是有关下载的代码)
//新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
//初始化
su.initialize(this.getServlet().getServletConfig(), request, response);
//设定contentDisposition为null以禁止浏览器自动打开文件,
//保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
//doc时,浏览器将自动用word打开它。扩展名为pdf时,
//浏览器将用acrobat打开。
su.setContentDisposition(null);
//下载文件
su.downloadFile("/upload/file/"+infoFile.getSaveName());
return mapping.findForward("success");
}}

D. ssh22号端口 怎么上传文件

你可以使用 Securite Ftp 客户端程序,将端口号设置成:22 号端口(如果是标准端口)。然后别的和其他 FTP 客户端程序一样进行操作。但是有一个前提就是:你要上传的对方的 FTP 服务器必须是已经配置成 SSH 服务的 FTP 服务器才行。否则的话,你只能够使用普通的 ftp 客户端程序(例如:CuteFtp、wsftp 等)进行文件上传(标准端口:21)。

E. win7下通过ssh如何上传文件至linux服务器

下载一个flashfxp或者其它类型的ftp链接软件,比如winscp也可以。
新建一个站点链接,链接模式为sftp
确保端口号就是你服务器的ssh端口。
然后输入root用户名,和密码就可以链接到服务器默认的root目录,可以自己调整,直接就可以像ftp一样上传文件。

F. LINUX系统 SSH工具上传文件命令

scp 可以在 2个 linux 主机间复制文件;

命令基本格式:
scp [可选参数] file_source file_target

======
从 本地 复制到 远程
======
* 复制文件:
* 命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file

G. 怎么把文件通过ssh传送

scp 命令是 SSH 中最方便有用的命令了,试想,在两台服务器之间直接传送文件,仅仅用 scp 一个命令就完全解决了。 你可以在一台服务器上 以 root 身份运行 #scp servername:/home/ftp/pub/file1 . 这样就把另一台服务器上的文件 /home/ftp/pub/file1 直接传到本机器的当前目录下,当然你也可以用 #scp /tmp/file2 servername:/boot 把本机上的文件 /tmp/file2 送到另一台机器的 /boot 目录下。而且整个传送过程仍然是用 SSH 加密的。

scp 就是 secure , 是用来进行远程文件拷贝的 . 数据传输使用 ssh1, 并且和 ssh1 使用相同的认证方式 , 提供相同的安全保证 . 与 rcp 不同的是 ,scp 会要求你输入密码如果需要的话 .

最简单的应用如下 :

scp 本地用户名 @IP 地址 : 文件名 1 远程用户名 @IP 地址 : 文件名 2

[ 本地用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 .

可能有用的几个参数 :

-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .

-C 使能压缩选项 .

-P 选择端口 . 注意 -p 已经被 rcp 使用 .

-4 强行使用 IPV4 地址 .

-6 强行使用 IPV6 地址 .

-r Recursively entire directories.

H. 如何通过ssh上传文件到服务器

需要用到scp命令行。
scp <本地文件名> <用户名>@<ssh服务器地址>:<上传保存路径即文件名> /*注:必须在未登录服务器的情况下*/
举例以说明:
如果希望将当前目录下的a.txt文件上传到ssh服务器上test文件夹并改名为b.txt,其中ssh服务器网址为127.0.0.1,用户名admin。
代码如下:
程序代码 scp a.txt [email protected]:/home/neo/test/b.txt

下载也很简单,只需要将“本地文件名”和后面服务器的信息对调即可

I. 如何ssh传输文件到linux

linux 传输文件 用的是scp命令

例如: 将本地文件传输到192.168.1.10的root目录下
scp /root/1.txt 192.168.1.10://root/
例如 :将192.168.1.10的root目录下的文件传到本地的root下
scp 192.168.1.10://root/1.txt /root/

J. ssh怎么把本地的文件上传到服务器

安装ssh
也可以新建用户名用于ssh 传输

1.查询是否安装了openssh
rpm -qa
|grep openssh
若没有则安装
2.启动ssh服务
service sshd
start
/etc/rc.d/init.d/sshd
start
3.开机启动ssh

chkconfig --add sshd

chkconfig --level 345 sshd on

[email protected]是本地机向远程[email protected]传输文件

[email protected]下 执行
ssh-keygen -t rsa
则在/root/.ssh/文件夹下生成 id_rsa、id_rsa.pub两个文件
过程如下
Generating public/private rsa
key pair.
Enter file in which to save the
key (/home/.username/ssh/id_rsa):#回车
Enter passphrase (empty for no
passphrase):#回车
Enter same passphrase
again:#回车
Your identification has been
saved in /home/.username /.ssh/id_rsa.
Your public key has been saved
in /home/.username /.ssh/id_rsa.pub.
The key fingerprint is:
38:25:c1:4d:5d:d3:89:bb:46:67:bf:52:af:c3:17:0c
username@localhost
Generating RSA keys:
Key generation complete.
5.
把192.168.1.10上的id_rsa.pub拷贝到192.168.1.8下且重命名为authorized_keys

mkdir
/root/.ssh

有时需要新建文件夹
/root/.ssh/
变更属性 chmod
644 .ssh/authorized_keys

形如:/root/.ssh/authorized_keys
6.
从本地192.168.1.10拷贝文件到远程服务器192.168.1.8
scp
/root/install.log [email protected]:/usr/local/src

可以用通配符拷贝
scp
/root/install.* [email protected]:/usr/local/src

拷入的文件有install.log、install.log.syslog

命令有

三,复制文件或目录命令:
复制文件:
(1)将本地文件拷贝到远程
scp
文件名用户名@计算机IP或者计算机名称:远程路径

本地192.168.1.8客户端
scp /root/install.* [email protected]:/usr/local/src

(2)从远程将文件拷回本地
scp
用户名@计算机IP或者计算机名称:文件名本地路径

本地192.168.1.8客户端取远程服务器12、11上的文件
scp [email protected]:/usr/local/src/*.log
/root/
scp [email protected]:/usr/local/src/*.log
/root/

复制目录:
(1)将本地目录拷贝到远程
scp -r
目录名用户名@计算机IP或者计算机名称:远程路径
(2)从远程将目录拷回本地
scp -r
用户名@计算机IP或者计算机名称:目录名本地路径

7. 当本地客户端 取其他多台服务器中的文件
本地192.168.1.8客户端
adser sshuser
passwd sshuser
usermod -G root sshuser 把用户加入root组

生成密钥
ssh-keygen -t rsa
密钥位置在
/home/sshuser/.ssh/id_rsa.pub
远程获取文件
scp [email protected]:/usr/local/src/*.log
/home/sshuser
scp [email protected]:/usr/local/src/*.log
/home/sshuser

a11.log a12.log 文件会获取到 /home/sshuser文件夹下
注意事项:
从远程取文件的地址,和放入本地的地址。权限一定要属于root组或者sshuser用户
chown -R sshuser.root /home/sshuser

拥有者。群组

远程192.168.1.11服务器
adser sshuser
passwd sshuser
usermod -G root sshuser
进入
/home/sshuser/
建立.ssh目录
mkdir /home/sshuser/.ssh

192.168.1.8的公钥(id_rsa.pub)拷入并重命名为authorized_keys
在/usr/local/src/中建立 a11.log文件

远程192.168.1.12服务器
adser sshuser
passwd sshuser
usermod -G root sshuser
进入
/home/sshuser/
建立.ssh目录
mkdir /home/sshuser/.ssh

192.168.1.8的公钥(id_rsa.pub)拷入并重命名为authorized_keys
在/usr/local/src/中建立 a12.log文件