ssh移植到arm板

openssh需要编译和移植 

SSHD编译 源码包 https://download.csdn.net/download/qq_36819130/11216034 源码路径

移植文件下载https://download.csdn.net/download/qq_36819130/11216026 

首先在/root/目录下创建ssh目录

#mkdir /root/ssh

#cd /root/ssh

# mkdir compressed install source

compressed 用于存放源码 install软件安装目录 source源码包解压目录

交叉编译zlib

# tar -jxvf zlib-1.2.3.tar.bz2  -C  ../source
# cd ../source/zlib-1.2.3
# ./configure --prefix=/root/ssh/install/zlib-1.2.3
# vi Makefile       //修改Makefile中的某些变量值,指定自己的交叉编译工具

其中需要更改内容

CC=arm-linux-gnueabihf-gcc
CPP=arm-linux-gnueabihf-gcc -E
AR=arm-linux-gnueabihf-ar rc
LDSHARED=arm-linux-gnueabihf-gcc

保存并执行make ,make install。

交叉编译openssl

# cd /root/ssh/compressed/
# tar -zxvf openssl-0.9.81.tar.gz  -C  ../source
# cd ../source/openssl-0.9.81
#./Configure  --prefix=/root/ssh/install/openssl-0.9.81  os/compiler:arm-linux-gnueabihf-gcc
执行 make        (如果遇到错误输入rm -f /usr/bin/pod2man)
      make install   (如果遇到错误输入rm -f /usr/bin/pod2man)

交叉编译openssh

# cd /root/ssh/compressed
# tar -zxvf openssh-4.6p1.tar.gz  -C ../source
# cd ../source/openssh-4.6p1
#./configure --host=arm-linux-gnueabihf --with-libs                                 --with-zlib=/root/ssh/install/zlib-1.2.3/ --with-ssl-dir=/root/ssh/install/openssl-0.9.81 --disable-etc-default-login CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar


#make                       注:不要make install

还需要生成密钥

#ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
#ssh-keygen -t dsa -f ssh_host_dsa_key -N ""

接下来就是移植

 #mkdir -p /usr/local/etc
 #mkdir -p /var/run /var/empty/sshd  并设定权限chmod 755 /var/empty
其中虚拟机下/root/ssh/source/openssh-4.6p1/scp,sftp,ssh,ssh-add,ssh-agent,ssh-keygen,ssh-keyscan共七个文件拷贝到开发板/usr/local/bin下
sshd拷贝到/usr/sbin下
sftp-server,ssh-keysign 拷贝到/usr/libexec下
生成的密钥和sshd_config复制到/usr/local/etc/目录下 其中还需要更改权限
# chmod 0644 *

# chmod 0600 ssh_host_dsa_key  ssh_host_key  ssh_host_rsa_key

修改开发板的配置文件

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

 修改sshd_config

分别去掉下列语句前的注释号(即去掉#号)并修改为: 
PermitRootLogin    yes―――――允许根用户登陆
PermitEmptyPasswords yes――――允许使用空密码
UsePrivilegeSeparation   no――――把安全级别降低,因为不会连接互联网
同时修改sftp-server的存放路径为 /sbin/sftp-server

运行sshd时要用绝对路径 #/sbin/sshd

加入自启动脚本 这样开机就可以自启动

/etc/init.d目录下新建sshd文件

#! /bin/sh 
sshd=/sbin/sshd
test -x "$sshd" || exit 0
 
 
case "$1" in
  start)
    echo -n "Starting sshd daemon"
    start-stop-daemon --start --quiet --exec $sshd  -b
    echo "."
    ;;
  stop)
    echo -n "Stopping sshd"
    start-stop-daemon --stop --quiet --exec $sshd
    echo "."
    ;;
  restart)
    echo -n "Stopping sshd"
    start-stop-daemon --stop --quiet --exec $sshd 
    echo "."
    echo -n "Waiting for sshd to die off"
    for i in 1 2 3 ;
    do
        sleep 1
        echo -n "."
    done
    echo ""
    echo -n "Starting sshd daemon"
    start-stop-daemon --start --quiet --exec $sshd -b
    echo "."
    ;;
  *)
    echo "Usage: /etc/init.d/sshd {start|stop|restart}"
    exit 1
esac
 
exit 0

执行脚本命令

 cd /etc/init.d 
 ln -sf ../init.d/sshd   ../rc5.d/S30sshd
 ln -sf ../init.d/sshd   ../rc3.d/S30sshd

 

你可能感兴趣的:(linux,ssh)