位置: 编程技术 - 正文

Linux中SSH的SCP传输命令运用详解

编辑:rootadmin

推荐整理分享Linux中SSH的SCP传输命令运用详解,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

Linux系统管理员应该很熟悉CLI环境,因为通常在Linux服务器中是不安装GUI的。SSH可能是Linux系统管理员通过远程方式安全管理服务器的最流行协议。在SSH命令中内置了一种叫SCP的命令,用来在服务器之间安全传输文件。以下命令可以解读为:用“username account”“拷贝 source file name”到“destination host”上的“destination folder”里。SCP命令的基本语法

复制代码代码如下:scp source_file_name username@destination_host:destination_folder

SCP命令有很多可以使用的参数,这里指的是每次都会用到的参数。用-v参数来提供SCP进程的详细信息

不带参数的基本SCP命令会在后台拷贝文件,除非操作完成或者有错误出现,否则用户在界面上是看不到任何提示信息的。你可以用“-v”参数来在屏幕上打印出调试信息,这能帮助你调试连接、认证和配置的一些问题。

复制代码代码如下: pungki@mint ~/Documents $ scp -v Label.pdf mrarianto@.x.x.x:.

部分输出

复制代码代码如下:Executing: program /usr/bin/ssh host .x.x.x, user mrarianto, command scp -v -t . OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c May debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line : Applying options for * debug1: Connecting to .x.x.x [.x.x.x] port . debug1: Connection established. debug1: Host '.x.x.x' is known and matches the RSA host key. debug1: Found key in /home/pungki/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: Next authentication method: password mrarianto@.x.x.x's password: debug1: Authentication succeeded (password). Authenticated to .x.x.x ([.x.x.x]:). Sending file modes: C Label.pdf Sink: C Label.pdf Label.pdf % KB .0KB/s : Transferred: sent , received bytes, in .2 seconds Bytes per second: sent .4, received .0 debug1: Exit status 0

从源文件获取修改时间、访问时间和模式

“-p”参数会帮到把预计的时间和连接速度会显示在屏幕上。

复制代码代码如下:pungki@mint ~/Documents $ scp -p Label.pdf mrarianto@.x.x.x:.

部分输出

复制代码代码如下:mrarianto@.x.x.x's password: Label.pdf % KB .6KB/s :

用-C参数来让文件传输更快

有一个参数能让传输文件更快,就是“-C”参数,它的作用是不停压缩所传输的文件。它特别之处在于压缩是在网络传输中进行,当文件传到目标服务器时,它会变回压缩之前的原始大小。

来看看这些命令,我们使用一个 Mb的单一文件来做例子。

复制代码代码如下:pungki@mint ~/Documents $ scp -pv messages.log mrarianto@.x.x.x:.

部分输出

复制代码代码如下:Executing: program /usr/bin/ssh host .x.x.x, user mrarianto, command scp -v -p -t . OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c May debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line : Applying options for * debug1: Connecting to .x.x.x [.x.x.x] port . debug1: Connection established. debug1: identity file /home/pungki/.ssh/id_rsa type -1 debug1: Found key in /home/pungki/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: Trying private key: /home/pungki/.ssh/id_rsa debug1: Next authentication method: password mrarianto@.x.x.x's password: debug1: Authentication succeeded (password). Authenticated to .x.x.x ([.x.x.x]:). debug1: Sending command: scp -v -p -t . File mtime atime Sending file timestamps: T 0 0 messages.log % MB .6KB/s : Transferred: sent , received bytes, in .3 seconds Bytes per second: sent .4, received .6 debug1: Exit status 0

不用“-C”参数来拷贝文件,结果用了.3秒,你可以比较下用了“-C”参数之后的结果。

复制代码代码如下: pungki@mint ~/Documents $ scp -Cpv messages.log mrarianto@.x.x.x:.

部分输出

复制代码代码如下:Executing: program /usr/bin/ssh host .x.x.x, user mrarianto, command scp -v -p -t . OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c May debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line : Applying options for * debug1: Connecting to .x.x.x [.x.x.x] port . debug1: Connection established. debug1: identity file /home/pungki/.ssh/id_rsa type -1 debug1: Host '.x.x.x' is known and matches the RSA host key. debug1: Found key in /home/pungki/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: Next authentication method: publickey debug1: Trying private key: /home/pungki/.ssh/id_rsa debug1: Next authentication method: password mrarianto@.x.x.x's password: debug1: Enabling compression at level 6. debug1: Authentication succeeded (password). Authenticated to .x.x.x ([.x.x.x]:). debug1: channel 0: new [client-session] debug1: Sending command: scp -v -p -t . File mtime atime Sending file timestamps: T 0 0 Sink: T 0 0 Sending file modes: C messages.log messages.log % MB .7KB/s : Transferred: sent , received bytes, in .5 seconds Bytes per second: sent .9, received .0 debug1: Exit status 0 debug1: compress outgoing: raw data , compressed , factor 0. debug1: compress incoming: raw data , compressed , factor 0.

看到了吧,压缩了文件之后,传输过程在.5秒内就完成了,速度是不用“-C”参数的倍。如果你要通过网络拷贝很多份文件,那么“-C”参数能帮你节省掉很多时间。

有一点我们需要注意,这个压缩的方法不是适用于所有文件。当源文件已经被压缩过了,那就没办法再压缩很多了。诸如那些像.zip,.rar,pictures和.iso的文件,用“-C”参数就没什么意义。选择其它加密算法来加密文件

SCP默认是用“AES-”加密算法来加密传输的。如果你想要改用其它加密算法来加密传输,你可以用“-c”参数。我们来瞧瞧。

复制代码代码如下:pungki@mint ~/Documents $ scp -c 3des Label.pdf mrarianto@.x.x.x:. mrarianto@.x.x.x's password: Label.pdf % KB .5KB/s :

Linux中SSH的SCP传输命令运用详解

上述命令是告诉SCP用3des algorithm来加密文件。要注意这个参数是“-c”(小写)而不是“-C“(大写)。限制带宽使用

还有一个很有用的参数是“-l”参数,它能限制使用带宽。如果你为了拷贝很多文件而去执行了一份自动化脚本又不希望带宽被SCP进程耗尽,那这个参数会非常管用。

复制代码代码如下:pungki@mint ~/Documents $ scp -l Label.pdf mrarianto@.x.x.x:. mrarianto@.x.x.x's password: Label.pdf % KB .3KB/s :

在“-l”参数后面的这个值意思是我们给SCP进程限制了带宽为 KB/秒。有一点要记住,带宽是以千比特/秒 (kbps)表示的,而8 比特等于1 字节。

因为SCP是用千字节/秒 (KB/s)计算的,所以如果你想要限制SCP的最大带宽只有 KB/s,你就需要设置成 x 8 = 。指定端口

通常SCP是把作为默认端口。但是为了安全起见SSH 监听端口改成其它端口。比如说,我们想用端口,这种情况下就要指定端口。命令如下所示。

复制代码代码如下:pungki@mint ~/Documents $ scp -P Label.pdf mrarianto@.x.x.x:. mrarianto@.x.x.x's password: Label.pdf % KB .3KB/s :

确认一下写的是大写字母“P”而不是“p“,因为“p”已经被用来保留源文件的修改时间和模式(LCTT 译注:和 ssh 命令不同了)。递归拷贝文件和文件夹

有时我们需要拷贝文件夹及其内部的所有文件/子文件夹,我们如果能用一条命令解决问题那就更好了。SCP用“-r”参数就能做到。

复制代码代码如下:pungki@mint ~/Documents $ scp -r documents mrarianto@.x.x.x:. mrarianto@.x.x.x's password: Label.pdf % KB .5KB/s : scp.txt % KB 9.8KB/s :

拷贝完成后,你会在目标服务器中找到一个名为“documents”的文件夹,其中就是所拷贝的所有文件。“documents”是系统自动创建的文件夹。禁用进度条和警告/诊断信息

如果你不想从SCP中看到进度条和警告/诊断信息,你可以用“-q”参数来静默它们,举例如下。

复制代码代码如下:pungki@mint ~/Documents $ scp -q Label.pdf mrarianto@.x.x.x:. mrarianto@.x.x.x's password: pungki@mint ~/Documents $

正如你所看到的,在你输入密码之后,没有任何关于SCP进度的消息反馈。进度完成后,你也看不到任何提示。用SCP通过代理来拷贝文件

代理服务器经常用于办公环境,SCP自然是没有经过代理方面的配置的。当你的环境正在使用代理,那么你就必须要“告诉”SCP与代理关联起来。

场景如下:代理的地址是.0..6,端口是。该代理还实现了用户认证功能。首先,你需要创建一个“~/.ssh/config”文件,其次把以下命令输入进该文件。

复制代码代码如下: ProxyCommand /usr/bin/corkscrew .0..6 %h %p ~/.ssh/proxyauth

接着你需要创建一个同样包括以下命令的“~/.ssh/proxyauth”文件。

复制代码代码如下:myusername:mypassword

然后你就可以像往常一样使用SCP了。

请注意corkscrew可能还没有安装在你的系统中。在我的Linux Mint中,我需要首先先用标准Linux Mint安装程序来安装它。

复制代码代码如下:$ apt-get install corkscrew

对于其它的一些基于yum安装的系统,用户能用以下的命令来安装corkscrew。

复制代码代码如下:# yum install corkscrew

还有一点就是因为“~/.ssh/proxyauth”文件中以明文的格式包含了你的“用户名”和“密码”,所以请确保该文件只能你来查看。选择不同的ssh_config文件

对于经常在公司网络和公共网络之间切换的移动用户来说,一直改变SCP的设置显然是很痛苦的。如果我们能放一个保存不同配置的ssh_config文件来匹配我们的需求那就很好了。以下是一个简单的场景

代理是被用来在公司网络但不是公共网络并且你会定期切换网络时候使用的。

复制代码代码如下:pungki@mint ~/Documents $ scp -F /home/pungki/proxy_ssh_config Label.pdf mrarianto@.x.x.x:. mrarianto@.x.x.x's password: Label.pdf % KB .5KB/s :

默认情况下每个用户会把“ssh_config”文件放在“~/.ssh/config“路径下。用兼容的代理创建一个特定的“ssh_config”文件,能让你切换网络时更加方便容易。

当你处于公司网络时,你可以用“-F”参数,当你处于公共网络时,你可以忽略掉“-F”参数。

标签: Linux中SSH的SCP传输命令运用详解

本文链接地址:https://www.jiuchutong.com/biancheng/366842.html 转载请保留说明!

上一篇:Linux常用网络工具之主机扫描工具fping使用介绍(linux在网络方面的应用)

下一篇:Linux常用网络工具之高级主机扫描工具hping使用介绍(linux强大的网络功能)

  • 从香港向境外汇款怎么汇
  • 土地价值计入房产税文件
  • 征收率 税率 区别
  • 以前年度损益调整在借方是什么意思
  • 不动产租赁服务属于现代服务吗
  • 排污费用计入什么会计科
  • 调整未分配利润影响所得税吗
  • 出租车手撕票可以换成增值税发票吗
  • 社保基数变更上限怎么办
  • 小规模纳税人生活服务业免征增值税
  • 对公账户卡号是私人账号
  • 预估应付账款该怎么冲销
  • 分公司亏损是否也分摊所得税
  • 业务招待费扣除计算
  • 留存收益总额不变
  • 合并报表固定资产抵消通俗理解
  • 贷款利息收入要减去支付利息支出吗
  • 上个月少计了成本要怎么办
  • 备品的定义
  • 个税返还奖励财务人员申报个税
  • 冲红的电子发票要怎么处理
  • 滴滴客运服务费发票税率
  • 资管产品增值税征收管理规定
  • 一般纳税人出租不动产
  • 应收账款收不回来了怎么销账
  • 建筑行业会计成本会计工作流程
  • windows defender隔离区
  • 公司买别人汇票有风险吗
  • 退税需要怎么操作
  • php实现简单数字变量
  • php实现的链式队列是什么
  • scworker.exe是病毒
  • 单反镜头直径越大是不是就越好
  • 借入长期借款的利息
  • 特殊性税务处理的条件
  • 中国网购软件
  • 员工的通讯费怎么报销
  • vue3中使用for循环引用多个组件
  • php基于单例模式开发
  • 查询命令的操作步骤
  • 会员信息查询系统
  • python 平均函数
  • 帝国cms移动端
  • sql条件查询语句怎么写
  • 出口化妆品会计怎么做账
  • 转让不动产增值税征收管理办法
  • 为什么一般纳税人税率高
  • 工人晚上加班的说说心情
  • 冲抵和抵扣
  • 贴现利息的计算公式为
  • 管理费用现金流量附表指定
  • 可供分配利润包括提取的盈余公积吗
  • 营业收入包括主营业务收入
  • 自产自销免税发票可以抵税吗
  • 用友t3月末转账流程图
  • 月报报表格式
  • 年初建账的期初余额
  • asp.net ui
  • sql语句 字符串
  • mac如何更换系统
  • 如何将用户加入某个组
  • 2015微软发布会
  • WIN10系统怎么清理电脑c盘垃圾怎么清理
  • hc off line什么意思
  • win7 64位系统使用百度影音播放视频没声音没画面的故障原因及解决方法
  • linux 常用命令大全及其详解
  • w10系统如何
  • css控制图片置灰
  • python中pyinstaller
  • jQuery基于xml格式数据实现模糊查询及分页功能的方法
  • OnApplicationFocus
  • Node.js中的核心模块包括哪些内容?
  • vue组件用法
  • bitmap压缩到指定尺寸
  • javascript例题
  • javascript整数类型
  • 个人取得抽奖,购车抵用,需要缴纳个人所得税吗
  • 农业部利剑行动
  • 多计提的税金如何处理
  • 济南税务局,济南电子税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设