SSH客户端附带的远程拷贝scp命令

    scp是加密 的远程拷贝,可以把数据从一台机器推送到另一台机器,也可以从其他服务器把数据拉回到本地执行命令的服务器,但是,每次都是全量拷贝(rsync增量拷贝),因此效率不高。 scp的基本语法使用 secure copy (remote file copy )

参数选项注释说明
-p拷贝前后保持文件或目录属性
-P(大写) 接端口,默认22端口时可省略
-r拷贝目录
-l限制速度

推:scp -Pport 源 目标(user@host_ip):/path

sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
$ touch {a..f}.txt
$ ls
a.txt  
b.txt  
c.txt  
d.txt  
e.txt  
f.txt

$ scp -P22 a.txt root@192.168.65.62:/
root@192.168.65.62's password: 
a.txt                       100%    0     0.0KB/s   00:00

$   ls /
app  
a.txt

拉:scp -Pport 源(user@host_ip):/path 目标

sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$   ll /
total 98
app  a.txt
$ ls

$ scp -P22 root@192.168.65.62:/a.txt ./
-rw-r--r--. 1 root root 0 Jun 16 18:20 a.txt
root@192.168.65.62's password: 
a.txt             100%    0     0.0KB/s   00:00    
$ ls
a.txt

拷贝目录

sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
$ touch {a..g}.txt
$ ls
 a.txt  b.txt  c.txt  d.txt  e.txt  f.txt  g.txt
$ scp -P22 -r /test1 root@192.168.65.62:/
root@192.168.65.62's password: 
c.txt                                       100%    0     0.0KB/s   00:00    
b.txt                                       100%    0     0.0KB/s   00:00    
g.txt                                       100%    0     0.0KB/s   00:00    
e.txt                                       100%    0     0.0KB/s   00:00    
a.txt                                       100%    0     0.0KB/s   00:00    
d.txt                                       100%    0     0.0KB/s   00:00    
f.txt                                       100%    0     0.0KB/s   00:00    
$ l
$ ll /
drwxr-xr-x.   2 root root  4096 Jun 17 06:52 test1

SSH服务附带sftp功能服务

安全的FTP的功能,即通过ssh加密数据后进行传输

Linux FTP客户端连接sftp服务器方法

linux客户端连接 sftp user@ip 如果端口为52113则登陆命令如下:

sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
$ sftp -oPort=22 root@192.168.65.62
Connecting to 192.168.65.62...
root@192.168.65.62's password:
# sftp默认的目录为用户家目录
sftp> ls -l
Identity.pub
anaconda-ks.cfg
install.log
install.log.syslog

# 上传,默认上传到对方家目录
sftp> put /test/1
Uploading /test/1 to /root/1
/test/1                       100%    0     0.0KB/s   00:00
$ ll
-rw-r--r--. 1 root root     0 Jun 17 08:43 1

sftp> ls -l
1
Identity.pub
anaconda-ks.cfg
install.log
install.log.syslog
# sftp不支持tab键
sftp> cat 1
Invalid command.

# 下载,默认下载到用户家目录
sftp> get install.log
Fetching /root/install.log to install.log
/root/install.log                                100%   21KB  21.2KB/s   00:00    
# sftp并不锁定目录,可以自行选择文件上传
# 把/etc/passwd从客户端本地传到sftp服务端指定目录/根下
sftp> put /etc/passwd /
Uploading /etc/passwd to /passwd
/etc/passwd                     100% 1202     1.2KB/s   00:00    
# lnmp长传自sftp服务器上的passwd文件
$ ll /
-rw-r--r--.   1 root root  1202 Jun 17 08:51 passwd
# sftp不能下载/上传目录
sftp> get asdc
Fetching /root/asdc to asdc
Cannot download non-regular file: /root/asdc

小结:

  1. sftp -oPort=22 root@1.1.1.1
  2. 上传put加客户端本地路径,也可以指定路径上传,put /etc/hosts(客户端目录) /tmp(服务器目录)
  3. 下载直接get服务端的内容,下载到本地的当前目录

windows客户端连接sftp方法

image-20221214234154054

这时是windows连接的lnmp而和lamp无关,相当于rz sz上传下载的功能

image-20221214234207465

sh
1
2
3
4
5
6
7
8
# 上传,路径要加双引号
sftp> put "D:\vmware-0.log"
Uploading vmware-0.log to /root/vmware-0.log
  100% 193KB    193KB/s 00:00:00     
D:/vmware-0.log: 197820 bytes transferred in 0 seconds (193 KB/s)
sftp> ls
anaconda-ks.cfg       install.log           install.log.syslog
vmware-0.log

下载

sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
sftp> get install.log
Downloading install.log from /root/install.log
  100% 21KB     21KB/s 00:00:00     
/root/install.log: 21682 bytes transferred in 0 seconds (21 KB/s)

sftp> get install.log "D:\"
Downloading install.log from /root/install.log
get: D:/: 系统找不到指定的文件。 
  100% 21KB     21KB/s 00:00:00     
/root/install.log: 21682 bytes transferred in 0 seconds (21 KB/s)

下载的目录是CRT设置的目录,注意设置后需要重新启动软件

image-20221214234228671