当前位置: 首页 > ds >正文

在幸狐RV1106板子上用gcc14.2本地编译安装ssh客户端/服务器、vim编辑器、sl和vsftpd服务器

【编译安装openssh-10.0p1】

wget https://repo.jing.rocks/pub/OpenBSD/OpenSSH/portable/openssh-10.0p1.tar.gz --no-check-certificate
tar xf openssh-10.0p1.tar.gz
cd openssh-10.0p1
./configure --with-sandbox=no
(必须添加--with-sandbox=no选项,否则sshd-auth程序的kex_ecdh_enc函数里面只要调用openssl库的EC_KEY_generate_key函数就会崩溃,导致putty窗口一打开就闪退)
makeaddgroup -S sshd
adduser -G sshd -SDH sshd
(不添加sshd用户的话会报Privilege separation user sshd does not exist错误)
make install
cd ..

查看ssh版本号:ssh -V
查看sshd版本号:sshd -V
输出:OpenSSH_10.0p2, OpenSSL 1.1.1w  11 Sep 2023
事实上10.0p1和10.0p2是同一个版本。

板子连接电脑虚拟机:ssh oct1158@192.168.4.53

sshd服务器允许root用户登录:修改/usr/local/etc/sshd_config文件,#PermitRootLogin prohibit-password改成PermitRootLogin yes。
板子启动sshd服务器:/usr/local/sbin/sshd
关闭sshd服务器:killall sshd
开机自动启动sshd:修改/etc/init.d/rcS文件,在里面添加一句/usr/local/sbin/sshd。

有了sshd服务器,FileZilla就可以连接板子,通过sftp方式浏览、上传和下载板子里面的文件。

【编译安装vim-9.0】

cd ~/software
wget https://ftp.nluug.nl/pub/vim/unix/vim-9.0.tar.bz2 --no-check-certificate
tar xf vim-9.0.tar.bz2
cd vim90
./configure LIBS=-lncursesw
(LIBS=-lncursesw选项仅在板子上装了libncursesw.so但没装libncurses.so时指定)
make
make install
cd ..

客户端          连接方式        vim是否能对c文件代码着色
putty           串口            否
tera term       串口            否
windows telnet  telnet          否
putty           telnet          否
tera term       telnet          否
putty           ssh             是
tera term       ssh             是

在ssh模式下,vim可以正常对c文件代码着色,putty和tera term两种ssh客户端都可以。
但是通过串口或者telnet连接板子,vim无法看到代码着色,所有文字都是白色。

【编译sl-5.02】

wget https://github.com/mtoyoda/sl/archive/refs/tags/5.02.tar.gz -O sl-5.02.tar.gz --no-check-certificate
tar xf sl-5.02.tar.gz
cd sl-5.02
修改Makefile文件,将里面的-lncurses改成-lncursesw。
make
cd ..

【编译安装vsftpd-3.0.5】
mkdir vsftpd
cd vsftpd

[编译安装libnsl-2.0.1]

wget https://github.com/thkukuk/libnsl/releases/download/v2.0.1/libnsl-2.0.1.tar.xz --no-check-certificate
tar xf libnsl-2.0.1.tar.xz
cd libnsl-2.0.1
./configure
make
make install
cd ..

[编译安装vsftpd-3.0.5]

wget https://security.appspot.com/downloads/vsftpd-3.0.5.tar.gz --no-check-certificate
tar xf vsftpd-3.0.5.tar.gz
cd vsftpd-3.0.5
make
make install
cd ../..

/usr/local/lib/gcc/arm-none-linux-gnueabihf/14.2.0/../../../../arm-none-linux-gnueabihf/bin/ld: sysdeputil.o: in function `vsf_sysdep_check_auth':
sysdeputil.c:(.text+0x9c): undefined reference to `crypt'
/usr/local/lib/gcc/arm-none-linux-gnueabihf/14.2.0/../../../../arm-none-linux-gnueabihf/bin/ld: sysdeputil.c:(.text+0xb0): undefined reference to `crypt'
collect2: error: ld returned 1 exit status
make: *** [Makefile:29: vsftpd] Error 1
解决办法:修改Makefile文件,第13行LDFLAGS末尾加上 -lcrypt。

创建ftp和nobody用户:
addgroup -S ftp
adduser -G ftp -SD ftp
chmod u-w /home/ftp
addgroup -S nobody
adduser -G nobody -SDH nobody
注意ftp用户要创建/home/ftp目录,而nobody用户不用创建,所以adduser命令添加ftp用户时不带H选项。
/home/ftp是用于匿名用户登录的目录,该目录必须用chmod命令去掉写权限,否则会报500 OOPS: vsftpd: refusing to run with writable root inside chroot()错误。

创建secure_chroot_dir用的文件夹:
mkdir /usr/share/empty

先关闭busybox自带的ftp服务器:
[root@luckfox-rv1106 ~/software]# ps aux | grep ftpd
107 root      0:00 tcpsvd 0 21 ftpd -w /
3056 root      0:00 grep ftpd
[root@luckfox-rv1106 ~/software]# kill -9 107
[root@luckfox-rv1106 ~/software]#

再启动vsftpd服务器:/usr/local/sbin/vsftpd &
可以用telnet localhost 21命令看看有没有报错,进去后可用quit命令退出。

默认情况下只允许匿名登录。
关闭vsftpd服务器:killall vsftpd
复制配置文件到/etc文件夹:cp vsftpd.conf /etc
创建log文件夹:mkdir /var/log

修改/etc/vsftpd.conf文件,取消注释local_enable=YES、write_enable=YES和local_umask=022。
再次启动vsftpd服务器:/usr/local/sbin/vsftpd &
现在的匿名用户和所有的系统用户都可以登录ftp服务器了。
匿名用户的目录是/home/ftp,没有写权限。
root用户和其他用户都有写权限。

与busybox自带的ftp服务器相比,vsftpd服务器有以下不同:
(1)支持匿名。
(2)默认不显示以点开头的隐藏文件。
(3)在windows文件管理器中可正常创建中文文件夹。

开机自动启动vsftpd:修改/etc/init.d/rcS文件,把tcpsvd 0 21 ftpd -w / &改成/usr/local/sbin/vsftpd &。

 

http://www.xdnf.cn/news/16407.html

相关文章:

  • Apache Ranger 权限管理
  • 【优选算法】链表
  • 局域网 IP地址
  • 卡尔曼滤波器噪声方差设置对性能影响的仿真研究
  • 亚马逊广告策略:如何平衡大词和长尾词的效果?
  • JAVA_FIFTEEN_异常
  • 轮盘赌算法
  • CMake进阶: 检查函数/符号存在性、检查类型/关键字/表达式有效性和检查编译器特性
  • LeetCode 127:单词接龙
  • 中国开源Qwen3 Coder与Kimi K2哪个最适合编程
  • React性能优化终极指南:memo、useCallback、useMemo全解析
  • 【氮化镓】GaN取代GaAs作为空间激光无线能量传输光伏转换器材料
  • k8s下springboot-admin 监控服务部署,客户端接入
  • c++文件操作详解
  • C++ - 模板进阶
  • 浅谈生成式AI语言模型的现状与展望
  • 自然语言处理技术应用领域深度解析:从理论到实践的全面探索
  • 【STM32】CUBEMX下FreeRTOS 任务栈管理与栈溢出检测(CMSIS_V2接口)
  • 【深入探究系列(6)】算法设计:高效算法的实现与优化
  • 机器学习 KNN 算法,鸢尾花案例
  • DP4871音频放大芯片3W功率单通道AB类立体声/音频放大器
  • Python day24
  • 残月头像阁
  • Vue3中的标签 ref 与 defineExpose:模板引用与组件暴露
  • Java零基础入门学习知识点2-JDK安装配置+Maven
  • vue3 组件生命周期,watch和computed
  • 【ResNet50图像分类部署至RK3588】模型训练→转换RKNN→开发板部署
  • Agent领域,近年来的前沿研究方向:多智能体协作、认知启发架构、伦理安全、边缘计算集成
  • 《计算机组成原理与汇编语言程序设计》实验报告一 基本数字逻辑及汉字显示
  • Avalonia 发布完cv到Linux上运行 出现字体丢失/不显示问题