轻松搭建安全高效的Linux SFTP服务器 (linux sftp 服务器)
随着互联网的普及,数据传输已经成为人们工作学习中不可避免的一个环节。然而,在数据传输的过程中,我们总是担心隐私泄露和信息被篡改等风险。作为一款支持安全文件传输的工具,Linux SFTP 服务器在数据传输领域发挥着重要的作用。本文将介绍如何。
一、安装OpenSSH
在开始之前,我们需要先安装OpenSSH软件包。一般情况下,你可以在你的Linux发行版主要软件源中获取OpenSSH。下面是安装 OpenSSH 的命令行安装指南:
以Debian/Ubuntu为例:
“`
apt-get update
apt-get install openssh-server
“`
以Fedora为例:
“`
dnf install openssh-server
“`
安装完成后,你可以通过以下命令验证OpenSSH:
“`
ssh localhost
“`
如果服务已经启动,你应该可以看到一个欢迎信息,代表服务正常运行。
二、配置sshd_config文件
在运行SFTP服务器之前,需要在sshd_config文件中进行一些重要的配置,以确保服务器的安全性。该文件的位置在/etc/ssh/sshd_config,不过在一些Linux发行版中,该文件可能位于不同的目录。
下面是sshd_config文件中有关SFTP的配置建议。
“`
Subsystem sftp internal-sftp
Match group sftponly
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
“`
上述配置主要有以下几个作用:
* 将SFTP系统文件包装在内部SFTP子系统中,这将提高安全性并提供更好的性能。
* 在ChrootDirectory下,存储SFTP用户的目录被限制到他/她的家目录。
* 通过禁止 SSH 端口的转发来增加安全性。
* 禁用X11转发。
三、配置SFTP用户
完成了上述操作后,需要在系统上创建SFTP用户。采用创建系统用户的方式,我们需要使用以下命令创建一个用户:
“`
useradd -g sftponly -d /home/sftpuser -s /bin/false sftpuser
“`
对于上面的命令,请注意以下信息:
* -g选项将用户添加到sftponly组中,这是在sshd_config文件中配置的用户限制组。
* -d选项指定主目录,这通常是/home/sftpuser。
* -s选项指定shell程序,但使用/bin/false将其设置为无效,意味着此用户无法通过shell程序进行访问。
接下来,我们可以使用passwd 命令为用户设置密码,如下所示:
“`
passwd sftpuser
“`
将SFTP用户的SSH密钥添加到他们的家目录中。我们可以使用以下命令完成此操作:
“`
mkdir -p /home/sftpuser/.ssh/
vi /home/sftpuser/.ssh/authorized_keys
“`
在authorized_keys文件中,插入SFTP用户的公共SSH密钥。该文件的权限应设置为“600”(即只读),以确保文件只能由该用户访问。
四、启动sshd
在完成上述操作后,我们可以启动sshd并检查是否正确地配置了SFTP服务器。以下是在许多Linux发行版中启动sshd的命令:
“`
systemctl start sshd
systemctl status sshd
“`
如果你看到服务处于活动状态,你就可以通过以下命令到达服务器:
“`
sftp sftpuser@
“`
在登录后,你应该可以看到SFTP用户所属的目录,该目录被ChrootDirectory限制在家目录以下。