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

在幸狐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.lryc.cn/news/600070.html

相关文章:

  • 基础很薄弱如何规划考研
  • 解密负载均衡:如何轻松提升业务性能
  • QT开发---多线程编程
  • 【SpringAI实战】ChatPDF实现RAG知识库
  • XORIndex:朝鲜不断发展的供应链恶意软件再次瞄准 npm 生态系统
  • 从分治的思想下优化快速排序算法
  • 免模型控制
  • 蓝桥杯java算法例题
  • 计算机网络(第八版)— 第2章课后习题参考答案
  • [NLP]多电源域设计的仿真验证方法
  • 数字化转型-AI落地金字塔法则
  • 【日志】unity俄罗斯方块——边界限制检测
  • 深度学习篇---图像数据采集
  • 【VLAs篇】06:从动作词元化视角谈VLA模型的综述
  • JavaSE-图书信息管理系统
  • 9 个优秀帮助中心案例:打造提升客户体验的自助支持系统
  • Allegro软件光绘文件Artwork到底如何配置?
  • 飞算JavaAI“删除接口信息” 功能:3 步清理冗余接口,让管理效率翻倍
  • Android Ntp系统校时流程
  • 互联网金融项目实战(大数据Hadoop hive)
  • Redis替代方案:腾讯云TDSQL-C内存优化实战,TPS秒上涨
  • App拉起:唤醒即达,告别繁琐操作
  • 百度快排技术分析的核心要素
  • 测试实时性内核参数配置
  • 【初识数据结构】CS61B中的快速排序
  • 洛谷 P11965 [GESP202503 七级] 等价消除-普及/提高-
  • 《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——5. 集成OpenCV:让程序拥有“视力”
  • WebGL入门:高斯模糊
  • Qt 网络编程进阶:HTTP 客户端实现
  • leetcode102:二叉树的层序遍历(队列实现)