我的路由器PandoraBox系统是精简版
使用xshell终端登录后,偶尔项使用sftp传输文件进PandoraBox路由器系统里,使用sftp工具访问时出现
subsystem request for sftp failed, subsystem not found.
这个错误,查找了很多网上的资料,总结就一句话:sftp-server的目录没有找到。检查了一下系统的软件包管理好像还真没安装sftp。
那就把sftp安装上。
老规矩,先更新一下软件源列表
opkg update
再检索一下sftp软件包
opkg list | grep 'sftp'
出现以下列表:
[root@PandoraBox_FAB0:/root]#opkg list | grep 'sftp' luci-app-vsftpd - git-18.365.46990-4b6a3d5-1 - PandoraBox vsftpd luci configuration module luci-i18n-vsftpd-zh-cn - git-18.365.46990-4b6a3d5-1 - Translation for luci-app-vsftpd - 简体中文 (Simplified Chinese) openssh-sftp-avahi-service - 7.3p1-3 - This package contains the service definition for announcing SFTP support via mDNS/DNS-SD. openssh-sftp-client - 7.3p1-3 - OpenSSH SFTP client. openssh-sftp-server - 7.3p1-3 - OpenSSH SFTP server. rssh - 2.3.3-1 - rssh is a restricted shell for use with OpenSSH, allowing only scp and/or sftp. It now also includes support for rdist, rsync, and cvs. For example, if you have a server which you only want to allow users to copy files off of via scp, without providing shell access, you can use rssh to do that. sshfs - 2.2-1 - Mount remote system over sftp. vsftpd - 3.0.3-5 - A fast and secure FTP server (no TLS) [root@PandoraBox_FAB0:/root]#opkg install vsftpd Package vsftpd (3.0.3-5) installed in root is up to date.
ok!
开始安装,这次我一键安装sftp服务一次性把相关包都安装上。
opkg install openssh-sftp-avahi-service openssh-sftp-client openssh-sftp-server luci-app-vsftpd luci-i18n-vsftpd-zh-cn
[root@PandoraBox_FAB0:/root]#opkg install openssh-sftp-avahi-service openssh-sftp-client openssh-sftp-server luci-app-vsftpd luci-i18n-vsftpd-zh-cn Installing openssh-sftp-avahi-service (7.3p1-3) to root... Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_24kec_dsp/packages/openssh-sftp-avahi-service_7.3p1-3_mipsel_24kec_dsp.ipk Installing openssh-sftp-server (7.3p1-3) to root... Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_24kec_dsp/packages/openssh-sftp-server_7.3p1-3_mipsel_24kec_dsp.ipk Installing libexpat (2.2.0-1) to root... Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_24kec_dsp/packages/libexpat_2.2.0-1_mipsel_24kec_dsp.ipk Installing libdbus (1.8.8-1) to root... Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_24kec_dsp/packages/libdbus_1.8.8-1_mipsel_24kec_dsp.ipk Installing dbus (1.8.8-1) to root... Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_24kec_dsp/packages/dbus_1.8.8-1_mipsel_24kec_dsp.ipk Installing libavahi-dbus-support (0.6.31-12) to root... Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_24kec_dsp/packages/libavahi-dbus-support_0.6.31-12_mipsel_24kec_dsp.ipk Installing libdaemon (0.14-4) to root... Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_24kec_dsp/packages/libdaemon_0.14-4_mipsel_24kec_dsp.ipk Installing avahi-dbus-daemon (0.6.31-12) to root... Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_24kec_dsp/packages/avahi-dbus-daemon_0.6.31-12_mipsel_24kec_dsp.ipk Installing openssh-sftp-client (7.3p1-3) to root... Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_24kec_dsp/packages/openssh-sftp-client_7.3p1-3_mipsel_24kec_dsp.ipk Package openssh-sftp-server (7.3p1-3) installed in root is up to date. Package luci-app-vsftpd (git-18.365.46990-4b6a3d5-1) installed in root is up to date. Package luci-i18n-vsftpd-zh-cn (git-18.365.46990-4b6a3d5-1) installed in root is up to date. Configuring openssh-sftp-server. Configuring libexpat. Configuring libdbus. Configuring dbus. Unknown group "netdev" in message bus configuration file Configuring libavahi-dbus-support. Configuring libdaemon. Configuring avahi-dbus-daemon. Configuring openssh-sftp-client. Configuring openssh-sftp-avahi-service. [root@PandoraBox_FAB0:/root]#
安装完成,回到sftp工具上重新连接PandoraBox路由器的sftp,这次没有出错,进入文件系统了。
扩展知识:
注意:在Ubuntu系统中,sftp
并非独立软件包,而是作为OpenSSH服务的内置功能存在。要启用SFTP服务,需通过安装和配置openssh-server
实现。
以下是具体步骤:
安装OpenSSH服务
执行以下命令安装核心组件:
sudo apt-get update sudo apt-get install openssh-server
安装完成后,SFTP功能将自动集成到SSH服务中
以下可选:
1.创建专用用户组与目录(可选)
创建SFTP用户组:
sudo addgroup sftp-users
2.建立隔离目录并设置权限:
sudo mkdir /home/sftp_root sudo chown root:root /home/sftp_root sudo chmod 755 /home/sftp_root
此目录将作为SFTP用户的根目录,限制其访问系统其他文件
配置SSH服务:
编辑配置文件/etc/ssh/sshd_config,添加以下内容:
Subsystem sftp internal-sftp Match Group sftp-users ChrootDirectory /home/sftp_root ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
该配置会强制sftp-users组用户仅能使用SFTP,且限制在其专属目录内活动
创建测试用户
1.添加用户并禁用shell访问:
sudo adduser alice sudo usermod -G sftp-users -s /bin/false alice
2.为用户创建子目录并授权:
sudo mkdir /home/sftp_root/alice_uploads sudo chown alice:sftp-users /home/sftp_root/alice_uploads
重启服务生效
sudo systemctl restart sshd
验证连接可使用命令sftp alice@localhost
返回顶部