SFTP在Linux和window下的文件传输

使用SecureCRT的SFTP在WINDOWS与LINUX之间传输文件

参考文献:

http://ice-k.iteye.com/blog/1068275

http://www.cnblogs.com/chen1987lei/archive/2010/11/26/1888391.html

背景:

有一台主机,安装了windows7,在其安装了virtualbox,然后安装了ubuntu虚拟机。在windows7上安装SecureCRT来ssh连接ubuntu虚拟机。一般在windows上面下载软件,然后通过vsftp上传到ubuntu虚拟机上。但是这样非常麻烦,现在考虑使用sftp协议来直接传输。

方案:

使用SecureCRT软件ssh连接到ubuntu虚拟机。然后在SecureCRT上面打开SFTP会话,如下图所示:  

SFTP命令

进入到sftp命令窗口以后,就可以通过sftp命令来进行文件互传的操作。下面主要介绍一下sftp命令的含义。
复制代码
sftp> help
Available commands:
ascii                          Set transfer mode to ASCII
binary                         Set transfer mode to binary
cd path                        Change remote directory to 'path'
lcd path                       Change local directory to 'path'
detail remote-path             Display system information about remotefile or folder
ldetail local-path             Display system information about localfile or folder
chgrp group path               Change group of file 'path' to 'group'
chmod mode path                Change permissions of file 'path' to 'mode'
chown owner path               Change owner of file 'path' to 'owner'
exit                           Quit sftp
help                           Display this help text
include filename               Include commands from 'filename'Alternate: < filename
get [-r][-a | -b] remote-path  Download file-r downloads directory recursivelyforce ascii (-a) or binary (-b) mode
ln [-s] existingpath linkpath  Hardlink / symlink remote file
ls [options] [path]            Display remote directory listing
lls [options] [path]           Display local directory listing
mkdir path                     Create remote directory
lmkdir path                    Create local directory
mv oldpath newpath             Move remote file
lmv oldpath newpath            Move local file
open [user@]host[:port]        Connect to remote host
put [-r][-a | -b] local-path   Upload file-r uploads directory recursivelyforce ascii (-a) or binary (-b) mode
pwd                            Display remote working directory
lpwd                           Print local working directory
quit                           Quit sftp
rename oldname newname         Rename remote file
lrename oldname newname        Rename local file
rmdir path                     Remove remote directory
lrmdir path                    Remove local directory
rm path                        Delete remote file
lrm path                       Delete local file
su username                    Substitutes the current userThis is only supported with VShell for Windows 3.5 or later.
type [transfer-mode]           Display or set file transfer mode
view remote-path               Download and open file
version                        Display protocol version
复制代码

翻译一下就是:

复制代码
sftp-- help 
可用命令: 
cd 路径                        更改远程目录到“路径” 
lcd 路径                       更改本地目录到“路径” 
chgrp group path               将文件“path”的组更改为“group” 
chmod mode path                将文件“path”的权限更改为“mode” 
chown owner path               将文件“path”的属主更改为“owner” 
exit                           退出 sftp 
help                           显示这个帮助文本 
get 远程路径                   下载文件 
ln existingpath linkpath       符号链接远程文件 
ls [选项] [路径]               显示远程目录列表 
lls [选项] [路径]              显示本地目录列表 
mkdir 路径                     创建远程目录 
lmkdir 路径                    创建本地目录 
mv oldpath newpath             移动远程文件 
open [用户@]主机[:端口]        连接到远程主机 
put 本地路径                   上传文件 
pwd                            显示远程工作目录 
lpwd                           打印本地工作目录 
quit                           退出 sftp 
rmdir 路径                     移除远程目录 
lrmdir 路径                    移除本地目录 
rm 路径                        删除远程文件 
lrm 路径                       删除本地文件 
symlink existingpath linkpath  符号链接远程文件 
version                        显示协议版本 
复制代码

我们主要用到的就是一下六个命令

复制代码
cd 路径                        更改远程目录到“路径” 
lcd 路径                       更改本地目录到“路径” 
ls [选项] [路径]               显示远程目录列表 
lls [选项] [路径]              显示本地目录列表 
put 本地路径                   上传文件 
get 远程路径                   下载文件 
复制代码

这里在详细说明一下远程目录本地目录

远程目录:ls查看到的是ubuntu虚拟机上面的目录

本地目录:lls查看到的是windows实体机上面的目录。

实例:

假设我需要实现windows下的e:\sftp\test1.txt和ubuntu下/home/enadmin/test2.txt的互换,可以进行一下操作:

put操作:windows->linux

查看目录权限

复制代码
root@BJCGNMON01:/home# ll
total 20
drwxr-xr-x  5 root    root    4096 Apr 18 15:21 ./
drwxr-xr-x 24 root    root    4096 Jan  3 14:14 ../
drwxr-xr-x  9 enadmin enadmin 4096 Apr 18 15:22 enadmin/
drwxr-xr-x  2 root    root    4096 Apr 18 15:21 sftp/--可以看到sftp的权限是root的
drwxr-xr-x  2 root    root    4096 Apr 18 14:57 test/
root@BJCGNMON01:/home# chown -R enadmin.enadmin sftp/
root@BJCGNMON01:/home# ll
total 20
drwxr-xr-x  5 root    root    4096 Apr 18 15:21 ./
drwxr-xr-x 24 root    root    4096 Jan  3 14:14 ../
drwxr-xr-x  9 enadmin enadmin 4096 Apr 18 15:22 enadmin/
drwxr-xr-x  2 enadmin enadmin 4096 Apr 18 15:21 sftp/--修改以后权限变成enadmin的了
drwxr-xr-x  2 root    root    4096 Apr 18 14:57 test/
复制代码

拷贝文件

复制代码
sftp> put test* --初始想将文件从windows系统put到ubuntu系统,发现失败,提示拒绝访问
Uploading test1.txt to /home/test1.txt
put: failed to upload e:/sftp/test1.txt. 拒绝访问。 
Uploading test2.txt to /home/test2.txt
put: failed to upload e:/sftp/test2.txt. 拒绝访问。 
Uploading test3.txt to /home/test3.txt
put: failed to upload e:/sftp/test3.txt. 拒绝访问。 
sftp> pwd --查看当前目录是/home目录,权限是root的
/home
sftp> cd /home/enadmin/ --我切换到enadmin目录下
sftp> ls
Graphs.pm             msmtp                 ntp
sent                  smokeping.tar.gz      smokepingrtt.tar.gz
smokepingrtt2.tar.gz  Target                wqy
wqy-zenhei-0.8.38-1.deb
sftp> lls
test1.txt             test2.txt             test3.txt
sftp> put test* -再次尝试将windows下的文件put到/homg/enadmin目录下,这次成功
Uploading test1.txt to /home/enadmin/test1.txt100% 4 bytes      4 bytes/s 00:00:00     
e:/sftp/test1.txt: 4 bytes transferred in 0 seconds (4 bytes/s)
Uploading test2.txt to /home/enadmin/test2.txt100% 4 bytes      4 bytes/s 00:00:00     
e:/sftp/test2.txt: 4 bytes transferred in 0 seconds (4 bytes/s)
Uploading test3.txt to /home/enadmin/test3.txt100% 5 bytes      5 bytes/s 00:00:00     
e:/sftp/test3.txt: 5 bytes transferred in 0 seconds (5 bytes/s)

sftp> cd /home/sftp/--在修改sftp目录权限以后,再次切换到sftp目录下
sftp> ls
sftp> lls
test1.txt             test2.txt             test3.txt
sftp> put test* --这回put成功。所以跟权限相关
Uploading test1.txt to /home/sftp/test1.txt100% 4 bytes      4 bytes/s 00:00:00     
e:/sftp/test1.txt: 4 bytes transferred in 0 seconds (4 bytes/s)
Uploading test2.txt to /home/sftp/test2.txt100% 4 bytes      4 bytes/s 00:00:00     
e:/sftp/test2.txt: 4 bytes transferred in 0 seconds (4 bytes/s)
Uploading test3.txt to /home/sftp/test3.txt100% 5 bytes      5 bytes/s 00:00:00     
e:/sftp/test3.txt: 5 bytes transferred in 0 seconds (5 bytes/s)
复制代码

注意点:这里需要注意权限的问题。加入我是使用enadmin账户初始连接ubuntu的,那么我put的文件只能放到文件夹权限是enadmin的目录下,不能放到文件夹权限是root的目录下。如果想放到文件夹权限是root的目录下,那么初始就使用root账户连接ubunut,然后再创建sftp会话,这样就可以了。

get操作:linux->windows

get操作没有权限设定

复制代码
sftp> pwd
/home/enadmin
sftp> lpwd
e:/Documents
sftp> lcd e:/sftp --切换目录
sftp> lls
rc.local              test1.txt             test2.txt
test3.txt
sftp> ls
Graphs.pm             msmtp                 ntp
sent                  smokeping.tar.gz      smokepingrtt.tar.gz
smokepingrtt2.tar.gz  Target                test1.txt
test2.txt             test3.txt             wqy
wqy-zenhei-0.8.38-1.deb
sftp> get Graphs.pm --下载文件到windows
Downloading Graphs.pm from /home/enadmin/Graphs.pm100% 13KB     13KB/s 00:00:00     
/home/enadmin/Graphs.pm: 13503 bytes transferred in 0 seconds (13 KB/s)
sftp> lls --查看windows目录
Graphs.pm             rc.local              test1.txt
test2.txt             test3.txt
sftp> 
复制代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353611.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

vsftp的简单使用

一、vsftp以及安装 服务端软件&#xff1a;vsftpd 客户端软件&#xff1a;ftp 端口号&#xff1a;20、21或指定范围内其他随机端口 配置文件&#xff1a;vim /etc/vsftpd/vsftpd.conf # 安装 yum install vsftpd ftp# 开机自启 systemctl enable vsftpd# 启动 systemc…

Explaining predictive models: the Evidence Counterfactual

Imagine being targeted with an advertisement for this blog. You’d like to know: why did the AI model predict you’d be interested in the Faculty of Business and Economics’ blog, based on the hundreds of web pages you visited? The answer could be: becaus…

记录搭建hadoop集群的过程

Linux(CentOS-7.6-x64位)基础配置, 虚拟机平台VmWare15 CentOS-7.6-x64镜像下载&#xff1a; https://www.aliyundrive.com/s/72Xg449t6i8 提取码: 32rm VmVare15安装包下载带序列号&#xff1a;VmVare15安装包下载带激活序列号资源-CSDN文库 点击关闭&#xff0c;点击完成&…

ChatGPT热度不减!华为宣布入局,盘古GPT能否大杀四方!

ChatGPT热度不减 六月份了&#xff0c;朋友们&#xff0c;来到六月份了已经&#xff0c;ChatGPT的热度依旧不减&#xff0c;各大论坛网站的榜单上还飘着ChatGPT相关话题的文章&#xff0c;且排名靠前。由此可见&#xff0c;这ChatGPT这股子热潮还得持续一段时间呢。 而且ChatG…

三国志战略版:Daniel_新晋减伤战法-奇计良谋

一、战法介绍 战法定位&#xff1a;稳定且有针对性的群体减伤战法。 同类效果&#xff1a; 稳定的群体减伤战法&#xff1a;八门金锁阵、抚辑军民、暂避其锋、锋矢阵、藤甲兵、御敌屏障。 稳定群体减伤战法往往可以极大提升一个队伍的强度&#xff0c;如今一线群体减伤战法中…

英雄打怪

英雄类 package LOLDemo;/*** ClassName: Hero* Description: * 自定义一个英雄类* 0.英雄类中加入“经验值”&#xff0c;“等级”&#xff0c;“攻击力”等属性变量,加入“击打”方法&#xff0c;击打的目标是怪物&#xff0c;击打的结果是怪物的生命值-英雄攻击力* …

【游戏逆向】RPG游戏自动打怪之取得最近怪物

RPG游戏辅助想要自动打怪&#xff0c;首要的任务就是需要获得最近的怪物,否则打怪的顺序会非常混乱。 想要取得最近怪物信息 要2个步骤 第一步 计算出所有怪物的距离 第二步 对所有怪物的距离进行判断,筛选出距离最近的 第一步怪物距离计算 如果是以2D的平面来看 2个点的距…

英雄杀-如何通关挑战

对于很多英雄杀的新手玩家来说&#xff0c;挑战&#xff0c;几乎很难一次通关&#xff0c;我也是&#xff0c;一般没超过十关。 我给大家分享一下我最近的通关方法&#xff0c;仅供参考&#xff1a; 第一种思路&#xff1a; 杨延昭&#xff1a; 有两个前提&#xff1a; 第一、…

javaweb session与cookie

Cookie Cookie是本地的存储数据&#xff0c;是键值对 注意一定要使用resp.addCookie才能返回cookie cookie修改 修改的话也是调用addCookie&#xff0c;对相同key的进行修改&#xff0c;作用于set-cookie响应头。 可以新建cookie&#xff0c;add进去&#xff0c;也可以在用户传…

行为型设计模式03-观察者模式

&#x1f9d1;‍&#x1f4bb;作者&#xff1a;猫十二懿 &#x1f3e1;账号&#xff1a;CSDN 、个人博客 、Github &#x1f38a;公众号&#xff1a;猫十二懿 观察者模式 1、观察者模式介绍 观察者模式是一种行为型设计模式&#xff0c;也被称为发布-订阅模式&#xff0c;它定…

【虹科案例】虹科数字化仪在激光雷达大气研究中的应用

01 莱布尼茨研究所使用激光雷达进行大气研究 图 1&#xff1a;在 Khlungsborn 的 IAP 办公室测试各种激光器 大气研究使用脉冲激光束通过测量大气中 100 公里高度的多普勒频移和反向散射光来测量沿光束的温度和风速。返回的光信号非常微弱&#xff0c;会被阳光阻挡&#xff0c…

XML入库后空白字符丢失问题

最近项目上在做电子病历&#xff0c;使用的是第三方的电子病历组件&#xff0c;该病历组件是利用XML来组织数据的。界面上渲染出来的效果如下图&#xff1a; XML渲染后的界面 对应的后台数据&#xff08;已做简化处理&#xff09;是如下XML格式的&#xff0c;其中的空格部分是…

前端入门学习

封装axios axios的基础使用 axios基础使用方法&#xff1a; axios.create({config}) //创建axios实例 axios.get(url,{config}) //get请求 axios.post(url, data,{config}) //post请求 axios.interceptors.request.use() // 请求拦截器 axios.interce…

赛尔号什么时候支持html5,赛尔号:这几只精灵必须拥有!无关强度,只因经典情怀!...

赛尔号这款游戏有着比较老的资历&#xff0c;很多玩家从还是小学生的时候就开始玩起了这个游戏&#xff0c;然后便一直玩到大学&#xff0c;甚至毕业工作。因此&#xff0c;赛尔号不仅仅是一款简单的网页游戏&#xff0c;更是一款充满了情怀的游戏。 那么&#xff0c;接下来的小…

赛尔号星球大战服务器维修,赛尔号星球大战11月29日更新公告

赛尔号星球大战11月29日新增了什么玩法&#xff1f;服务器的维护时间是多少&#xff1f;来看看9k9k小编rayxx带来的赛尔号星球大战11月29日更新公告。 11月29号下午15点至17点更新公告: 1、精灵 新增了两种精灵:亚兰洛(火系)&#xff0c;星吉拉(普通系)。 通过有缘人进行精灵繁…

4399知名游戏-赛尔号图鉴的爬取

4399知名游戏-赛尔号图鉴的爬取 面向对象&#xff1a; 1.疫情居家无聊之人 2.python略懂一点点就行 头文件引入&#xff1a; 如果没有下面的头文件不要慌&#xff0c;打开你的python终端pip install 包名即可 from bs4 import BeautifulSoup import requests import json …

容器技术 — Cgroups 与 Namespaces 支撑实现的操作系统虚拟化

目录 文章目录 目录操作系统虚拟化&#xff08;容器技术&#xff09;的发展历程ChrootCgroupsCgroup SubsystemsCgroup FilesystemCgroup HierarchyCgroups 的操作规则Cgroups 的代码实现 NamespacesUTS namespacePID namespaceIPC namespaceMount namespaceNetwork namespaceU…

使用geoserver发布shp和tiff数据

一、安装并启动geoserver服务 1.1 下载geoserver 进入官网下载 由于geoserver是使用Java语言开发的&#xff0c;所以运行需要java的环境&#xff0c;不同geoserver的版本号对java的版本要求不同&#xff0c;所以选择版本时需注意对应java的版本要求&#xff0c;由于我本地安…

javascript回到顶部

如图&#xff1a; 数字从1到100&#xff0c;滚动后点击章鱼哥便可以回到顶部。 HTML内容不多只有一个a标签内容有一个图片和100个h1标签&#xff0c;但要看清楚是给它设置好了id的&#xff0c;当然不设置id也行但有时候对小白不太友好。 为了使点击图片更加贴合整个页面所以需要…

一段简单的网页返回顶部和返回底部代码(html+css+jquery)

最近用到了返回顶部和底部功能&#xff0c;找了找&#xff0c;查了查&#xff0c;改了改&#xff0c;最终实现效果大概这样子。 以下是相关代码&#xff1a; html部分&#xff1a; <div id"backtotop" class"backtotop"><div class"bt-box…