Linux搭建sftp服务器指南

记录Linux搭建sftp服务器并配置免密登录的步骤,以红帽7.9操作系统为例。

部署sftp服务

实际上是使用ssh中的sftp服务,以下操作使用root用户

创建sftp用户组

1
groupadd sftp

创建sftp用户组中的用户

如将用户名设为sftpupload

1
useradd -g sftp -s /bin/false sftpupload

修改刚创建用户的密码

1
passwd sftpupload

创建sftp组用户的家目录

目录可根据实际情况修改,如下面示例

1
mkdir -p /home/sftp/sftpupload

指定sftpupload的家目录为/home/sftp/sftpupload

1
usermod -d /home/sftp/sftpupload sftpupload

配置sshd_config

vi /etc/ssh/sshd_config编辑并在配置末尾添加以下内容

1
2
3
4
5
6
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /home/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

修改目录权限

1
2
chown root:sftp /home/sftp/sftpupload
chmod 755 /home/sftp/sftpupload

创建sftp用户登录后可写入的目录

1
2
3
mkdir -p /home/sftp/sftpupload/upload
chown sftpupload:sftp /home/sftp/sftpupload/upload
chmod 755 /home/sftp/sftpupload/upload

关闭selinux防火墙

1
setenforce 0

重启sshd服务

1
systemctl restart sshd

本地登录测试

1
sftp sftpupload@localhost

输入密码后就成功登录sftp服务器了

配置免密登录

若需要在另一台服务器免密登录部署好的sftp服务器时,则需要通过配置互信。

在需要配置免密登录的服务器上生成公私钥文件

选择一个用户,比如monitor用户执行

1
ssh-keygen -t rsa

回车两次生成rsa公私钥文件,可以打开/home/用户/.ssh文件夹下查看(比如这里是/home/monitor/.ssh),需要复制下面id_rsa.pub文件中的内容。

sftp服务器上配置对应的公钥

使用root用户登录sftp服务器,可以先创建sftpupload的.ssh文件夹

1
2
mkdir -p /home/sftp/sftpupload/.ssh
touch authorized_keys

将复制过来的id_rsa.pub中的内容增加到authorized_keys文件中。

注:需要更改sftpupload下.sshauthorized_keys的属组,因为sftpupload只支持sftp协议

1
chown -R sftpupload:sftp /home/sftp/sftpupload/.ssh

这样就可以在对应服务器上免密登录sftp服务器了

比如monitor用户就可以免密连接至sftp服务器上了

1
2
3
4
5
6
sftp sftpupload@192.168.xxx.xxx
sftp> pwd
/
sftp> ls
upload
sftp> exit

后续若需要在其他新服务器上免密登录sftp服务器,只需生成公私钥文件,并将id_rsa.pub文件中的内容追加至sftp服务器上/home/sftp/sftpupload/.ssh/authorized_keys文件中即可。

作者

chengzhy

发布于

2023-10-27

更新于

2023-10-27

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×