在CentOS系统上安装SFTP服务器

温馨提示:本文最后更新于2023-10-24 21:14:24,某些文章具有时效性,若有错误或已失效,请在文末留言。

FTP传输方式保密性差,而SFTP方式则采取了加密传输,安全性更好。要在CentOS系统上安装SFTP服务器,我们可以按照以下步骤进行操作!请确保在设置过程中,替换相应的路径和用户名。

安装OpenSSH

1、确保你的CentOS系统已经安装了OpenSSH软件包,如果没有安装,可以使用以下命令进行安装,如下图:

sudo yum install openssh-server

在CentOS系统上安装SFTP服务器

2、查询安装的OpenSSH版本,命令:

ssh -V

在CentOS系统上安装SFTP服务器

创建用户组和用户

1、创建一个新的用户组,例如创建sftp用户组,命令如下:

groupadd sftp

在CentOS系统上安装SFTP服务器

2、创建一个新的用户,例如创建sftp1用户,并将其添加到sftp用户组中,该用户将用于SFTP访问,命令如下:

useradd -g sftp -s /sbin/nologin sftp1

在CentOS系统上安装SFTP服务器

3、设置sftp1用户的密码,命令如下,然后输入2遍密码:

passwd sftp1

在CentOS系统上安装SFTP服务器

PS:我们也可以用这条命令快速设置sftp1用户密码为123456:echo '123456' | passwd --stdin sftp1

4、创建SFTP目录,命令如下:

mkdir -p /www/sftp/sftp1

在CentOS系统上安装SFTP服务器

5、指定用户默认目录,命令如下:

usermod -d /www/sftp/sftp1 sftp1

在CentOS系统上安装SFTP服务器

修改ssh服务配置

1、若你的CentOS系统安装了宝塔面板,可以打开SSH服务器配置文件 /etc/ssh/sshd_config,并进行以下修改:

①将 Subsystem sftp /usr/libexec/openssh/sftp-server 这一行注释掉,不然修改后会启动不了sshd服务,在行前添加 # 符号即可,如下图
②添加以下行到文件末尾:

Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

在CentOS系统上安装SFTP服务器

在CentOS系统上安装SFTP服务器

PS:其中的代码“Match Group sftp”为匹配sftp用户组,而“ChrootDirectory %h”为限定访问目录,每个SFTP用户将被限制在其自己的家目录中,而无法访问其他系统文件或目录。

设置目录权限

1、设置root为目录所有者,命令如下:

chown root:sftp /www/sftp/sftp1
chmod 755 /www/sftp/sftp1

在CentOS系统上安装SFTP服务器

PS:权限设置为755,即 /www/sftp/sftp1 目录可读、可执行、不可写(也可设置为644,要求权限不能超过755)

2、在磁盘上创建目录,命令如下:

mkdir /www/sftp/sftp1/upload

在CentOS系统上安装SFTP服务器

3、设置sftp1为目录所有者,命令如下:

chown sftp1:sftp /www/sftp/sftp1/upload
chmod 755 /www/sftp/sftp1/upload

在CentOS系统上安装SFTP服务器

PS:权限设置为755,即 /www/sftp/sftp1/upload 目录可读、可执行、不可写(也可设置为644,要求权限不能超过755)

4、重启SSH服务,让sshd_config配置生效:

systemctl restart sshd.service

在CentOS系统上安装SFTP服务器

测试

1、完成上述步骤后,你的CentOS服务器就已经安装好了SFTP服务。

2、现在,用户可以使用SFTP客户端(如WinSCP)通过指定的用户名和密码连接到服务器,并访问其所属的目录。

在CentOS系统上安装SFTP服务器 在CentOS系统上安装SFTP服务器

增加SFTP访问端口

出于安全角度考虑,有些企业会要求不能使用默认的22端口,要额外新增访问端口。这里以新增2222端口为例,只需要再次修改SSH服务器配置文件 /etc/ssh/sshd_config即可。如下图,删除Port 22行前的 # 符号,即保留22端口用于内部远程控制,然后新增一行代码:Port 2222

在CentOS系统上安装SFTP服务器

最后用WinSCP访问新端口2222验证链接。

创建SFTP管理员

随着外部SFTP用户增多,需要有个管理员用户来统一查看所有用户的文件。直接用root不安全,需要添加一个SFTP管理员用户来实现,并且管理员可以访问所有SFTP用户目录。

1、新建一个sftpadmin用户,归属于root用户组,命令如下:

useradd -g root sftpadmin

2、设置管理员密码,命令如下,然后输入2遍密码:

passwd sftpadmin

PS:我们也可以用这条命令快速设置sftpadmin管理员密码为123456:echo '123456' | passwd --stdin sftpadmin

3、在宝塔面板打开SSH服务器配置文件 /etc/ssh/sshd_config,并添加以下行到文件末尾:

Match User sftpadmin
ChrootDirectory /www/sftp
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

在CentOS系统上安装SFTP服务器

查看创建的SFTP用户

要查看在CentOS上创建的SFTP用户,可以使用以下命令:

sudo cat /etc/passwd | grep "/sbin/nologin"

这个命令将显示所有使用/sbin/nologin作为登录Shell的用户,通常,在搭建SFTP服务器时,为了限制用户只能通过SFTP访问而不能登录系统,会将SFTP用户的登录Shell设置为/sbin/nologin。

在CentOS系统上安装SFTP服务器

删除SFTP用户

在CentOS系统中,可以通过以下步骤删除SFTP用户:

1、登录到CentOS服务器上的root账户。

2、使用以下命令来删除SFTP用户,并将"username"替换为要删除的实际用户名:

userdel username

例如,删除sftp1用户命令:userdel sftp1

3、在删除用户时,如果想同时删除与该用户相关联的主目录,可以使用以下命令:

userdel -r username

例如,删除sftp1用户并同时删除该用户相关联的主目录,命令:userdel -r sftp1

在CentOS系统上安装SFTP服务器

请注意,执行此操作需要root权限,因此请谨慎操作。

PS:由于Linux下添加用户后,会在系统里自动加一个系统邮箱,路径是:/var/spool/mail/用户名,建议先用命令删除邮箱用户:rm -rf /var/spool/mail/用户名,然后再执行上面的删除用户命令:userdel username,否则后面重新添加相同名称的用户会报错!

卸载OpenSSH

要在CentOS系统上卸载OpenSSH,您可以按照以下步骤进行操作:

1、登录到服务器上的root账户或具有管理员权限的账户,打开终端窗口,并执行以下命令以卸载OpenSSH软件包:

sudo yum remove openssh

在CentOS系统上安装SFTP服务器

2、当提示确认时,输入 y 并按下 Enter键 来确认卸载操作。

在CentOS系统上安装SFTP服务器

3、等待卸载过程完成。一旦完成,OpenSSH将从您的CentOS系统中被完全移除。

请注意,卸载OpenSSH可能会导致失去与服务器的远程连接,因为OpenSSH是用于远程登录和管理服务器的重要组件。如果您需要继续远程管理服务器,请确保安装了其他适当的远程管理工具或重新安装一个替代的SSH服务器。在卸载OpenSSH之前,请确保您有相应的备份和计划。

Linux系统下SFTP命令详解-十一张
✅来源:十一张博客
© 版权声明
THE END
如果觉得这篇文章对您有帮助,可以收藏本网址,方便下次访问!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容