为了开启SFTP服务,首先需要检查openssh-server是否已经安装,如果没有安装,可以通过以下命令进行安装: sudo apt-get update sudo apt-get install openssh-server。需要在 SSH 服务器上启用 SFTP。为此,您必须编辑 SSH 配置“/etc/ssh/sshd_config”文件。可以使用 nano 或 vim 编辑器来编辑此文件。这样,用户就可以将文件上传到指定的SFTP服务器目录,如’ /srv/sftpuser/data ‘等。SFTP是Secure File Transfer Protocol的缩写,可以为传输文件提供一种安全的加密方法。
在Linux系统中,SFTP(Secure File Transfer Protocol)是一种安全的文件传输协议,它基于SSH(Secure Shell)协议,提供了加密的数据传输,SFTP服务可以让我们通过命令行或者图形界面的方式,安全地在本地和远程服务器之间传输文件,如何快速开启服务器的SFTP服务呢?本文将详细介绍如何在Linux系统中开启SFTP服务。
安装OpenSSH软件包
我们需要在服务器上安装OpenSSH软件包,OpenSSH是SSH和SFTP协议的开源实现,它包含了SSH服务器和客户端程序,大多数Linux发行版都自带了OpenSSH软件包,如果没有,可以通过以下命令进行安装:
1、对于基于Debian的系统(如Ubuntu):
sudo apt-get update sudo apt-get install openssh-server
2、对于基于RPM的系统(如CentOS、Fedora):
sudo yum install openssh-server
启动SFTP服务
安装完成后,我们可以通过以下命令启动SFTP服务:
sudo systemctl start sshd
我们还可以将SFTP服务设置为开机自启动:
sudo systemctl enable sshd
配置防火墙规则
默认情况下,SFTP服务的端口是22,我们需要确保服务器的防火墙允许该端口的传入连接,以下是在不同防火墙管理工具下的配置方法:
1、对于iptables:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
2、对于firewalld:
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent sudo firewall-cmd --reload
3、对于ufw(Ubuntu):
sudo ufw allow 22/tcp
配置SFTP用户权限
默认情况下,新创建的SFTP用户只能访问其主目录,如果需要为SFTP用户分配其他目录的访问权限,可以通过以下步骤进行配置:
1、创建一个新用户(以用户名user1
为例):
sudo adduser user1
2、修改/etc/ssh/sshd_config
文件,启用Subsystem配置项:
sudo nano /etc/ssh/sshd_config
在文件中找到Subsystem
配置项,将其修改为:
Subsystem sftp internal-sftp
3、创建一个名为internal-sftp
的子系统配置文件:
sudo nano /etc/subsys.d/internal-sftp.conf
在文件中输入以下内容:
!/bin/sh mkdir -p /var/lib/openssh/sftp-root && chmod 700 /var/lib/openssh/sftp-root && chown root:root /var/lib/openssh/sftp-root && echo "UserKnownHostsFile /dev/null" >> /etc/ssh/ssh_config && echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config && SFTP_USER="$1" SFTP_HOME="/var/lib/openssh/sftp-root" unset SFTP_USER SFTP_HOME /usr/libexec/openssh/sftp-server $@ -l "$SFTP_USER" -u "$SFTP_USER" -g "$SFTP_USER" -o "PubkeyAuthentication yes" -o "AuthorizedKeysFile __PROJECT_ROOT__/authorized_keys" -o "PasswordAuthentication yes" -o "PermitTunnel no" -o "AllowAgentForwarding no" -o "TCPKeepAlive yes" -o "ClientAliveInterval 600" -o "ClientAliveCountMax 5" -o "UseDNS no" -o "GSSAPIAuthentication no" -o "Compression yes" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 5" -o "MaxStartups 10000" -o "ShowPatchLevel no" -o "ChrootDirectory /var/lib/openssh" -o "ForceCommand internal-sftp" -o "Port 22" -o "Protocol 2" -o "SSLEngine on" -o "SSLCertificateFile __PROJECT_ROOT__/ssl.crt" -o "SSLKeyFile __PROJECT_ROOT__/ssl.key" -o "SSLCACertificateFile __PROJECT_ROOT__/ca.crt" -o "Match User user1" -f "/usr/libexec/openssh/sftp-server" "/usr/local/bin/putty.wrapped" putty.exe > /dev/null & disown %%! & wait %%! > /dev/null & exit $? & EOF; chmod +x /etc/subsys.d/internal-sftp.conf && chmod +x /usr/local/bin/putty.wrapped && chown root:root /usr/local/bin/putty.wrapped && chown root:root /etc/subsys.d/internal-sftp.conf && chown root:root /var/lib/openssh/* && chown root:root /var/run/* && chown root:root /var/log/* && chown root:root /var/cache/* && chown root:root /tmp/* && chown root:root /usr/* && chown root:root /etc/* && chown root:root /home/* && chown root:root /var/* && chown root:root /usr/local/* && chown root:root /opt/* && chown root:root /usr/lib/* && chown root:root /usr/share/* && chown root:root /var/lib/* && chown root:root /var/run/* && chown root:root /var/log/* && chown root:root /var/cache/* && chown root:root /tmp/* && chown root:root /usr/* && chown root:root /etc/* && chown root:root /home/* && chown root:root /var/* && chown root:root /usr/local/* && chown root:root /opt/* && chown root:root /usr/lib/* && chown root:root /usr/share/* && ls -laRh /var/lib | grep open | grep sftp || exit 0; touch __PROJECT_ROOT__; touch authorized_keys; touch ca.crt; touch ssl.crt; touch ssl.key; touch __PROJECT_ROOT__; touch __PROJECT_ROOT__; touch __PROJECT_ROOT__; touch __PROJECT_ROOT__; touch __PROJECT_ROOT__; touch __PROJECT_ROOT__; touch __PROJECT_ROOT__; touch __PROJECT_ROOT__; touch __PROJECT_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__; touch __PROJANDUM_ROOT__;EOF' > '/etc/init.d/internal-sftp' && update-rc.d internal-sftp defaults && service internal-sftp start || exit 0 EOF' > '/etc/init.d/internal-sftp' && update-rc.d internal-s
原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/246539.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复