arm linux的ssh配置,Arm-Linux 移植 ssh

背景:

自己拥有一块开发板,但是苦于上面没有ssh,比较不方便。正好趁这个机会,移植ssh。我们使用的ssh是openssh。

host平台   :Ubuntu 18.04

arm平台   : S5P6818

openssh     :4.6p1

openssl    :0.9.8e

zlib      :1.2.11

arm-gcc   :4.8.1

主机准备:

为了方便管理,创建有关的目录

mkdir sshcdssh

mkdir compressed install source

下载有关的源码:

cd compressed

#下载zlib:wget -c https://www.zlib.net/zlib-1.2.11.tar.gz

#下载ssl:wget -c https://www.openssl.org/source/openssl-0.9.8e.tar.gz

#下载ssh:wget -c http://mirrors.mit.edu/pub/OpenBSD/OpenSSH/portable/openssh-4.6p1.tar.gz

解压下载的包

tar -xf openssh-4.6p1.tar.gz -C ../sourcetar -xf openssl-0.9.8e.tar.gz -C ../sourcetar -xf zlib-1.2.11.tar.gz -C ../source

编译:cd ../source

zlib

./configure --prefix=/home/xx/arm/ssh/install/zlib-1.2.11

# vi Makefile

修改对应的变量值 ,注意是加入前缀,如果变量有任何其他内容,那么保持对应的项目不变

CC=arm-none-linux-gnueabi-gcc

AR=arm-none-linux-gnueabi-ar rc

CPP =arm-none-linux-gnueabi-gcc ...

LDSHARED=arm-none-linux-gnueabi-gcc ...

make && make install

openssl

# xx @ xx in ~/arm/ssh/source/openssl-0.9.8e [15:03:51]

$ ./Configure --prefix=/home/xx/arm/ssh/install/openssl-0.9.8e  os/compiler:arm-none-linux-gnueabi-gcc

$  make && make install

编译和安装openssl时出错,POD document had syntax errors

错误信息:

installing man1/smime.1

smime.pod around line 272: Expected text after =item, not a number

smime.pod around line 276: Expected text after =item, not a number

smime.pod around line 280: Expected text after =item, not a number

smime.pod around line 285: Expected text after =item, not a number

smime.pod around line 289: Expected text after =item, not a number

POD document had syntax errors at /usr/bin/pod2man line 71.

make: *** [install_docs] 错误 255

原因分析:这是由于OpenSSL 1.0.1e 与 perl5.18 不兼容。

解决方法:

1. 安装perl 5.16 可以兼容,安排低版本perl 5.16可以解决问题。

2. 让 pod2man 无法被访问:

sudo rm /usr/bin/pod2man

sudo mv /usr/bin/pod2man /usr/bin/pod2man_bak

openssh

# xx @ xx in ~/arm/ssh/source/openssh-4.6p1 [15:13:46]

$

./configure --host=arm-none-linux-gnueabi --with-libs

--with-zlib=/home/xx/arm/ssh/install/zlib-1.2.11

--with-ssl-dir=/home/xx/arm/ssh/install/openssl-0.9.8e

--disable-etc-default-login CC=arm-none-linux-gnueabi-gcc

AR=arm-none-linux-gnueabi-ar

如果出现以下某个报错,请注意zlib的install路径 和 OpenSSL的install路径 是否正确

configure配置openssh的时候出错:configure: error: *** zlib missing - please install first or check config.log ***

configure: error: *** Can't find recent OpenSSL libcrypto (see config.log for details)

$  make

注意:openssh不需要make install

开发板准备:

新建以下目录

mkdir -p /usr/local/bin/

mkdir -p /usr/local/sbin/

mkdir -p /usr/local/etc/

mkdir -p /usr/local/libexec/

mkdir -p /var/run/

mkdir -p /var/empty/

拷贝:

从PC机上将以下文件拷贝到目标板Linux系统中

PC机 /work/ssh/source/openssh-4.6p1/ 目录下的

scp  sftp  ssh  ssh-add  ssh-agent  ssh-keygen  ssh-keyscan  拷贝到目标板/usr/local/bin

#cp scp  sftp  ssh  ssh-add  ssh-agent  ssh-keygen  ssh-keyscan ~/nfs/ulb/

moduli ssh_config sshd_config拷贝到目标板 /usr/local/etc

# cp moduli ssh_config sshd_config ~/nfs/ule

sftp-server  ssh-keysign 拷贝到目标板 /usr/local/libexec

# cp sftp-server  ssh-keysign  ~/nfs/ull

sshd 拷贝到目标板 /usr/local/sbin/

# sshd ~/nfs/uls

生成Key文件

在PC机 /work/ssh/source/openssh-4.6p1/ 目录下运行:

ssh-keygen -t rsa -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 ""

将生成的 ssh_host_*_key这3个文件copy到目标板的 /usr/local/etc/目录下

修改目标板passwd文件

在/etc/passwd 中添加下面这一行

cp /etc/passwd  /etc/passwd_bak

echo "sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin" >> /etc/passwd

只需要运行一次 /usr/local/sbin/sshd 此后即可使用远程登录

如果连接不上,请直接运行 /usr/local/sbin/sshd 查看是什么原因

有提示 动态链接库 找不到的(工具链的动态链接库)

有提示 ssh_host 文件找不到的 生成即可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值