通过 SFTP (SSH 文件传输协议) 操作服务器
SFTP (SSH 文件传输协议) 是一种用于在远程服务器上管理文件的安全协议。它允许您传输文件、创建目录、管理访问权限等。对于用户而言,操作 SFTP 与操作 FTP 非常相似,但连接是通过加密的 SSH 协议进行的。
要连接 SFTP,您可以使用 FTP 客户端,例如 FileZilla。
连接参数
通常,连接 SFTP 需要以下参数:
- 主机:您的服务器 IP 地址(您可以在管理面板的服务器主页上找到它)。
- 用户名:在服务器上创建的用户名。
- 密码:该用户的密码。
- 端口:22。
如果您使用 RSA 密钥进行身份验证,还需要输入密码短语(如果在创建密钥时设置了的话)并上传公钥。
我们强烈建议避免以 root 用户身份通过 SFTP 连接。这不仅不安全,而且不方便。如果您以 root 身份登录,您将位于 root 的家目录(通常是 /root),您必须在文件结构中移动才能访问项目目录。此外,如果您以 root 身份上传文件,这些文件将属于 root:root 用户和组,Web 服务器将无法读取它们。这可能会导致您的网站出现文件访问错误。
Fastpanel
如果您使用 Fastpanel,安装时会创建一个 fastuser 用户。要以此用户身份连接,请使用以下参数:
- 主机:您的服务器 IP 地址。
- 用户名:fastuser。
- 密码:为 fastuser 用户设置的密码(请注意,这与 root 密码不同)。
- 端口:22。
成功连接后,您将进入 /var/www/fastuser/data 目录。
网站通常位于该目录的子文件夹中:/var/www/fastuser/data/www/域名。
如果您创建了其他用户(例如 user),请使用其参数进行连接。
- 主机:服务器 IP 地址
- 用户名:user
- 密码:user 用户的密码
- 端口:22
成功连接后,您将进入 /var/www/user/data 目录。
网站目录位于以下地址:/var/www/user/data/www/域名。
VestaCP
默认情况下,VestaCP 会创建 admin 用户。要以此用户身份连接,请使用以下参数:
- 主机:服务器 IP 地址
- 用户名:admin
- 密码:admin 用户的密码(默认与 root 密码相同)
- 端口:22
成功连接后,您将进入 /home/admin/ 目录。
网站目录位于以下地址:/home/admin/web/域名。
如果您在 VestaCP 中创建了其他用户(例如 user)并以其名义在 WEB 版块添加了网站,请使用以下参数进行 SFTP 连接:
- 主机:服务器 IP 地址
- 用户名:user
- 密码:user 用户的密码
- 端口:22
成功连接后,您将进入 /home/user/ 目录。
网站目录位于以下地址:/home/user/web/域名。
ISPmanager
在连接 SFTP 之前,请确保所需用户拥有 Shell 访问权限。可以在 ISPmanager 中检查:进入 账号 - 用户,选择所需用户并点击 修改。
确保勾选了 Shell 访问权限 选项。
默认情况下,ISPmanager 会创建 www-root 用户。如果您以此用户身份在“WWW 域名”版块放置了网站,请使用以下参数进行 SFTP 连接:
- 主机:服务器 IP 地址
- 用户名:www-root
- 密码:www-root 用户的密码(默认与 root 密码相同)
- 端口:22
成功连接后,您将进入 /var/www/www-root/data/ 目录。
网站目录位于以下地址:/var/www/www-root/data/www/域名。
如果您创建了其他用户(例如 user)并以其名义添加了网站,请使用以下参数进行连接:
- 主机:服务器 IP 地址
- 用户名:user
- 密码:user 用户的密码
- 端口:22
成功连接后,您将进入 /var/www/user/data 目录。
网站目录位于以下地址:/var/www/user/data/www/域名。
Bitrix 7
默认情况下,Bitrix 7 系统会创建 bitrix 用户。要进行 SFTP 连接,请使用以下参数:
- 主机:服务器 IP 地址
- 用户名:bitrix
- 密码:bitrix 用户的密码(默认与 root 密码相同)
- 端口:22
成功连接后,您将进入 /home/bitrix/ 目录。
网站目录位于以下地址:/home/bitrix/www/(主站)和 /home/bitrix/ext_www/域名(通过 BitrixVM 创建的其他网站)。
LAMP
在此组合中,默认情况下 Web 服务器使用 www-data 用户运行。如果您希望以其他用户身份操作(包括通过 SFTP 连接),请执行以下设置。
首先通过 SSH 连接到服务器并执行以下操作:
- 创建一个新的 SFTP 用户(本例中使用 sftpuser),家目录设为 /var/www/:
useradd -d /var/www/ sftpuser
- 为新用户设置密码:
passwd sftpuser
系统会提示输入密码 —— 请输入。请注意,输入时屏幕上不会显示字符。
- 将用户添加到 www-data 组:
usermod -aG www-data sftpuser
将 www-data 设为用户的主要组:
usermod -g www-data sftpuser
- 打开 Nginx 配置文件:
nano /etc/nginx/nginx.conf
在文本编辑器中打开 nginx.conf 文件:
nano /etc/nginx/nginx.conf
找到此行:
user www-data;
并将其替换为:
user sftpuser;
保存更改并关闭编辑器。
要应用更改,请重启 Nginx:
service nginx restart
现在,使用以下命令检查 Nginx Web 服务器是以哪个用户身份运行的:
ps auxwwww | grep nginx
您将看到 Web 服务器正以 sftpuser 用户身份运行。
- 对于 Apache2 Web 服务器,用户设置在以下文件之一中执行:
在 Ubuntu / Debian 中:
/etc/apache2/apache2.conf
# 或:
/etc/apache2/envvars
在 CentOS 中:
/etc/httpd/httpd.conf
# 或:
/etc/httpd/envvars
在我们的 LAMP 组合中,您需要在 /etc/apache2/envvars 文件中设置变量。
要了解 www-data 用户在哪个配置文件中定义,您可以逐个检查这些文件是否包含该行。找到包含 www-data 的文件后,将其值替换为 sftpuser。
打开 Apache2 服务器的变量文件:
在 Ubuntu / Debian 中:
nano /etc/apache2/envvars
在 CentOS 中:
nano /etc/httpd/envvars
找到此行:
export APACHE_RUN_USER=www-data
并将其替换为:
export APACHE_RUN_USER=sftpuser
保存更改并关闭文件。
然后重启 Web 服务器。对于 Debian/Ubuntu,执行:
service apache2 restart
对于 CentOS,使用:
service httpd restart
使用以下命令检查 Apache2 以哪个用户身份运行:
ps auxwwww | grep apache
- 为存放网站的目录(用户家目录)设置正确的访问权限、所有者和组。依次执行以下命令:
find /var/www -type d -exec chmod 755 {} ;
find /var/www -type f -exec chmod 644 {} ;
chown -R sftpuser:www-data /var/www/
设置完成。
现在,使用以下身份验证数据测试 SFTP 连接:
- 主机:服务器 IP 地址
- 用户名:sftpuser
- 密码:sftpuser 用户的密码(在第 2 步中设置)
- 端口:22