3、SSH、SFTP

SSH

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定,SSH 为建立在应用层和传输层基础上的安全协议。

SSH的优点:

SSH的劣势:

连接SSH

Linux 一般作为服务器使用,而服务器一般放在机房,你不可能在机房操作你的 Linux 服务器,一般远程登陆的方式都是基于SSH,常用的工具有XShellMobaXterm

MobaXterm有免费版本,而且免安装比较方便:https://mobaxterm.mobatek.net/

使用前提

1、服务器开启了SSH服务

操作系统即使是最小安装ssh默认是已经安装的。默认ssh服务也是开启的。

可以通过命令service sshd status来查看sshd服务是否开启

image-20230915155827749

2、服务器网络没问题

查看系统IP:ip addr

image-20210810121540002

发现第二个网卡ens33并没有分配IP

使用命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33,进入配置文件进行修改ONBOOT为yes,表示服务启动时自动执行该文件,:wq保存退出

image-20210810134034965

重启网络服务,命令:service network restart

重启完之后,再次查看IP地址,命令:ip addr,发现网卡ens33已经有了局域网IP

image-20210810134413047

第三方工具连接

image-20210810134509018

image-20210810134525843

image-20210810134718344

image-20210810134750523

连接成功

image-20210810134813026

SSH命令行连接

一般情况下,Windows、Mac、Linux操作系统都内置了ssh命令

可以使用如下命令来连接目标服务器,如果端口是默认22,则不需要指定端口-p

ssh -p [port] [username]@[ip]

修改SSH服务端口号

1、编辑 SSH 配置文件:vi /etc/ssh/sshd_config

2、找到#Port 22、去掉注释并修改

3、重启SSH服务:service sshd restart

4、配置防火墙,允许新端口访问

SFTP

这是一个建立在SSH之上的协议,以一种安全的方式有效地传输文件。通过使用该协议,它可以很容易地通过互联网连接安全地移动大量数据。它利用了SSH,使信息交换具有更高的保护水平。

SFTP的优点:

SFTP的缺点:

连接SFTP

由于SFTP是建立在SSH之上的,所以使用前提和SSH一样,端口也是使用SSH的端口。一般情况下,我们使用第三方工具例如XShell、MobaXterm都已经内置了SFTP的功能。

但是某些特殊情况下,可能无法安装使用第三方工具,那么就需要使用sftp命令,这个命令在Windows、Mac、Linux一般都是默认内置的。

#如果连接地址存在 path 并且 path 不是一个目录,那么 SFTP 会直接从服务器端取回这个文件。
#-B: buffer_size,指定传输 buffer 的大小,更大的 buffer 会消耗更多的内存,默认为 32768 bytes;
#-P: port,指定连接的SSH端口号,默认为 22;
#-R: num_requests,指定一次连接的请求数,可以略微提升传输速度,但是会增加内存的使用量。
sftp -P [port] [user_name]@[ip][:path]

#例如
C:\Users\yhgh>sftp -P 22 root@192.168.253.143:/home/
root@192.168.253.143's password:
Connected to 192.168.253.143.
Changing to: /home/
sftp>

连接后,我们会进入sftp的解释器,可以使用help命令查看可用命令

bye                                Quit sftp
cd path                            Change remote directory to 'path'
chgrp [-h] grp path                Change group of file 'path' to 'grp'
chmod [-h] mode path               Change permissions of file 'path' to 'mode'
chown [-h] own path                Change owner of file 'path' to 'own'
df [-hi] [path]                    Display statistics for current directory or
                                   filesystem containing 'path'
exit                               Quit sftp
get [-afpR] remote [local]         Download file
help                               Display this help text
lcd path                           Change local directory to 'path'
lls [ls-options [path]]            Display local directory listing
lmkdir path                        Create local directory
ln [-s] oldpath newpath            Link remote file (-s for symlink)
lpwd                               Print local working directory
ls [-1afhlnrSt] [path]             Display remote directory listing
lumask umask                       Set local umask to 'umask'
mkdir path                         Create remote directory
progress                           Toggle display of progress meter
put [-afpR] local [remote]         Upload file
pwd                                Display remote working directory
quit                               Quit sftp
reget [-fpR] remote [local]        Resume download file
rename oldpath newpath             Rename remote file
reput [-fpR] local [remote]        Resume upload file
rm path                            Delete remote file
rmdir path                         Remove remote directory
symlink oldpath newpath            Symlink remote file
version                            Show SFTP version
!command                           Execute 'command' in local shell
!                                  Escape to local shell
?                                  Synonym for help

下载

#文件
sftp> get remotePath [localPath]
#目录
sftp> get -r remotePath [localPath]

上传

#文件
sftp> put [localPath] remotePath
#目录
sftp> put -r [localPath] remotePath

删除

#文件
sftp> rm path
#目录
sftp> rmdir path