AM335x 嵌入式Linux系统安装openssh

硬件环境:Ubuntu虚拟机、AM335X开发板、开发板通过电脑网口直连

一、获取源码

版本:zlib-1.2.13,openssl-1.0.0j,openssh-6.0p1

#openssl版本要选正确,与开发板系统移植,否则sshd不能正常开机启动

zlib:
https://www.zlib.net/zlib-1.2.13.tar.gz

openssl:
https://www.openssl.org/source/old/1.0.0/openssl-1.0.0j.tar.gz

openssh:
https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-6.0p1.tar.gz?spm=a2c6h.25603864.0.0.686840adwV8SAL

将下载好的压缩包放在虚拟机根目录 

二、交叉编译

交叉编译zlib

tar zxvf zlib-1.2.13.tar.gz
cd /zlib-1.2.13
./configure --prefix=/home/forlinx/zlib-1.2.13

#修改Makefile中的某些变量值,指定自己的交叉编译工具
CC=arm-arago-linux-gnueabi-gcc
CPP=arm-arago-linux-gnueabi-g++
AR=arm-arago-linux-gnueabi-ar
LDSHARED=arm-arago-linux-gnueabi-gcc

保存退出执行

make
make install

交叉编译openssl

tar zxvf openssl-1.0.0j.tar.gz
cd /openssl-1.0.0j
./config --prefix=/home/forlinx/openssl-1.0.0j  os/compiler:arm-arago-linux-gnueabi-gcc
make
make install

交叉编译openssh

tar zxvf openssh-6.0p1.tar.gz
cd /openssh-6.0p1
./configure --host=arm-arago-linux-gnueabi --with-libs --with-zlib=/home/forlinx/zlib-1.2.13/ --with-ssl-dir=/home/forlinx/openssl-1.0.0j --disable-etc-default-login CC=arm-arago-linux-gnueabi-gcc AR=arm-arago-linux-gnueabi-ar
make

注:不要make install
生成sshd、sftp-server、sshd_config等文件

 建立密匙

在openssh-6.0p1目录下,用ssh-keygen工具建立密钥

ssh-keygen -t rsa1 -f ssh_host_key -N ""
ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N "" 

 生成了8个密匙文件
ssh_host_dsa_key  
ssh_host_dsa_key.pub  
ssh_host_key 
ssh_host_key.pub  
ssh_host_rsa_key  
ssh_host_rsa_key.pub
ssh_host_ecdsa _key  
ssh_host_ecdsa _key.pub

 三、开发板移植

建目录 

mkdir -p /usr/local/etc
mkdir -p /var/run /var/empty/sshd  
#并设定权限
chmod 755 /var/empty

复制文件 

sshd和sftp-server复制到开发板的/sbin/目录下
生成的8个密钥文件和sshd_config复制到/usr/local/etc/目录下

修改权限 

进入/usr/local/etc/目录下,修改权限:

chmod 0644 *
chmod 0600 ssh_host_dsa_key ssh_host_key ssh_host_rsa_key ssh_host_ecdsa _key 

修改文件

修改/etc/目录下的passwd和group文件,添加sshd用户和组
在passwd最后一行添加sshd:*:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
在group最后一行添加sshd:*:74:

修改/usr/local/etc/目录下的sshd_config
PermitRootLogin    yes―――――允许根用户登陆
PermitEmptyPasswords yes――――允许使用空密码
UsePrivilegeSeparation   no――――把安全级别降低,因为不会连接互联网
修改sftp-server的存放路径为 /sbin/sftp-server

四、系统运行 

/sbin/sshd 

查看sshd版本

/sbin/sshd -v
OpenSSH_6.0p1, OpenSSL 1.0.0j 10 May 2012

五、添加自启动脚本 

新建S99sshd.sh

/etc/init.d/下新建S99sshd.sh,名字需要以S+两位数字开头,SNNxx.sh

touch S99sshd.sh

格式更改为UNIX

#! /bin/sh
DESC="sshd"
NAME=sshd
DAEMON=/sbin/$NAME

sshd=/sbin/sshd
test -x "$DAEMON" || exit 0
case "$1" in
  start)
    echo -n "Starting $DESC:"
#    /sbin/start-stop-daemon -S -x $sshd > /dev/null
    /sbin/start-stop-daemon --start --quiet --exec $DAEMON -b
    echo "done."
    ;;
  stop)
    echo -n "Stopping $DESC:"
#    /sbin/start-stop-daemon -K -x $sshd > /dev/null
    /sbin/start-stop-daemon --stop --quiet --pidfile /var/run/sshd.pid
	  echo "done."
    ;;
  restart)
    $0 stop
    echo -n "Waiting for $DESC to die off"
    for i in 1 2 3 ;
    do
        sleep 1
        echo -n "."
    done
    echo ""
	  $0 start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac
exit 0

创建软连接:

ln -s /etc/init.d/S99sshd /etc/rc3.d/S30sshd
ln -s /etc/init.d/S99sshd /etc/rc5.d/S30sshd

可实现开机自启动脚本

查看启动过程:


sshd服务正常启动不报错

查看任务: 

 
ps命令,查看sshd已正常启动 ,可通过客户端进行ssh连接

参考

openssh编译安装到ARM嵌入式系统中_路边闲人2的博客-CSDN博客https://blog.csdn.net/v6543210/article/details/83420034

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值