本帖最后由 Maphin 于 2024-4-15 09:40 编辑
此贴记录AX5400电竞版官固SSH开启sftp折腾过程:
首先论坛里有SSH教程https://www.right.com.cn/forum/thread-8348455-1-1.html
1.ssh后发现重启失效?
解决办法:重新连接telnet按照48楼主解决
- mkdir /data/auto_ssh && cd /data/auto_ssh
- curl -O https://cdn.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh
- chmod +x auto_ssh.sh
- ./auto_ssh.sh install
复制代码
2.ssh后修改了/etc/rc.local开机启动脚本自动还原为空?
解决办法:通过防火墙添命令添加自启动脚本
https://www.right.com.cn/forum/thread-8340357-1-1.html
注意:如果没效果可能需要增加sleep增加延迟启动,比如添加路由表route add命令,我试过必须要添加sleep延迟才正常
3.SSH后终端上下键没有历史记录功能?
原因是/root目录只读且可用空间为0
解决办法:利用/data目录可读写mkdir -p /data/root创建root文件夹,执行挂载命令
- mount --bind /data/root /root
复制代码 注意:开机会失效,按照上面的方法将mount --bind /data/root /root添加进开机启动脚本
4.手机SSH软件想要管理文件发现连接不上?
原因是小米路由默认没有安装SFTP
当我尝试通过正常的 opkg 安装 openssh-sftp-server 时,遇到了一个源 404 的错误。为了解决这个问题,我尝试通过修改 /etc/opkg/distfeeds.conf 文件,将多个源添加进去。然而,最终我发现即使我成功添加了这些源,系统的 /overlay 目录空间不足且只读,无法进行写操作。后来我尝试通过挂载 /data 目录到 /overlay,发现虽然 /data/usr 目录是可写的,但是 /usr 目录依然是只读的。 在探索的过程中,我在另一台 OpenWrt 设备上找到了一些启发。我发现 sftp 进程是通过 /usr/libexec/sftp-server 文件启动的,但是 /usr 目录只读。于是,我决定在 /data 目录创建一个相同的目录,并将 /usr/libexec 文件复制到 /data 目录。然后,我通过挂载的方式将 /data/usr/libexec 目录挂载到 /usr/libexec,并且将 sftp 的安装包解压提取出其中的 sftp-server 可执行文件,并拷贝到 /usr/libexec 目录中。然而,这些尝试都没有成功,因为发现 sftp 的可执行文件与当前系统的架构不符。最终,经过多次尝试,我找到了一个适用于当前系统的 sftp 版本,成功解决了问题。 解决办法:
- cp -rp /usr/libexec /data/usr/
- mount --bind /data/usr/libexec /usr/libexec
- curl -o /usr/libexec/sftp-server "https://fastly.jsdelivr.net/gh/mphin/Mi_Route_Tool@main/AX5400/sftp-server"
- chmod 0755 /usr/libexec/sftp-server
复制代码 最后将mount --bind /data/usr/libexec /usr/libexec按照上面的方法添加进开机启动脚本,完毕SFTP成功连接
AX5400电竞版架构是arm_cortex-a7,没想到SFTP最终能使用上的竟是openwrt18.06.0的arm_cortex-a9架构,且根目录只读不可写真的蛋疼一路波折,如果有更好的办法欢迎大家提出来
|