scp 和 sftp 是什么、怎么用

3 篇文章 0 订阅

前言

scpsftp 是一种远程文件加密传输协议,说的通俗点就是用来操控本地/远程文件,不知道注意到了没有,它们开头都带了 s,是的,它们本身自带了一层 ssh 加密协议。

--------------------- 修改 2022年5月30日 --------------------------
或许是文章的比喻不够严谨以至于让读者对 sftpftp/ftps 以及 http 之间产生误解,这里再重新解释一下这几个协议的关系。

sftpftp、ftpshttp之间的关系
  1. sftpftp/ftps 都是文件传输的一种协议, 但 ftp 是最早出现的

  2. ftp 不等于 http,下方同学留言的说法是不正确的,它比 http 早了 10 年,具体可参考 维基百科 ftp

  3. SSL/TLS 协议不仅用于 http,还可以用于ftp ,所以 ftps 的 s 就是这么由来的,目的是为了更安全的传输

  4. sftp 是基于 ssh 协议所实现的文件传输协议,使用命令跟 ftp/ftps 一样,有同学可能好奇,已经有了 ftps 为何还需要 sftp
    这是因为 ftp/ftps对客户端/服务端之间的通信需要开启两个端口来完成,而sftp 只需一个端口,而且安全性更好

  5. 总结: sftps、ftp、ftps 都是传输文件的一种协议,http 协议是用来访问网站的,它们职责本身就不同,可不要混淆哦。

提示,如果你还没了解过 ssh 可以参考我之前写过的 ssh 是什么、有什么用 ,不想了解也没关系,因为这两命令使用起来非常简单。

1. scp 使用

scp 的基本命令为:scp socure target

1.1 将本地文件复制到远程机
例子1
scp -r ./test/ root@111.222.333:/home/
例子2
scp -P 6666 -r ./test/ root@111.222.333:/home/

-r 参数表示是否递归复制目录
-P 参数表示指定 ssh 端口号(注意是大写 P)
以上表示将本地的 ./test 目录放到远程机的 /home/ 下面

1.2 将远程机文件复制到本地
例子
scp -r root@111.222.333:/home/test ./home/

以上表示将远程机的 /home/test 目录放到本地的 ./home/ 下面

1.3 将远程文件复制到另一个远程机
例子
scp -r root@111.222.333:/home/test root@444.555.666:/home/

以上表示将远程机的 /home/test 目录放到另外一台远程机的 /home/ 下面

2. sftp 使用

首先,我们打开 git 或 linux 来连接服务器

如果你是 windown 系统也可以尝试输入,因为 window 部分系统如 win10 已经自带了

格式
sftp username@hostname
例如
sftp root@111.222.333

接下来就会进入 sftp 命令模式

sftp> 输入你的 sftp 命令
1.1 将本地文件复制到远程机
格式
put localfile [remotefile]
例子
put -r ./test /home

-r 参数表示是否递归复制

1.2 将远程机文件复制到本地
格式
get remotefile [localfile]
例子
get -r /home/test ./home

1.3 创建/删除远程目录

创建 hello 目录
mkdir hello
删除 hello 目录
rmdir hello

sftp 远程工作环境默认在 user 目录,因此上面创建的 hello 目录会放到 ~/hello 下, 假设你的用户名是 root 那就是在 root/hello ,要想改变环境可以使用 cd 或者加上绝对路径 / 标识符,如下

第一种
cd /home
mkdir hello
第二种
mkdir /home/hello

3. scp 和 sftp 有啥区别?用哪个好?

区别
1、scp 能将远程文件复制到另一个远程机,sftp 不能
2、scp 没有删除/创建远程目录功能,sftp 有

用哪个好
偶尔操作文件就用 scp ,反之 sftp

好了,本文就到这里,如有疑问欢迎指出。

参考文献

https://wangdoc.com/ssh/sftp.html
https://www.goanywhere.com/blog/2016/11/23/sftp-vs-ftps-the-key-differences#:~:text=While%20FTPS%20adds%20a%20layer,and%20data%20files%20being%20transferred.

  • 16
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cookcyq

请作者喝杯暖暖的奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值