做这一步之前,首先确定已经

你的本机上建立好了arm-linux交叉编译环境#arm-linux-gcc

-v开发板已与路由器相连,并进行了必要的网络配置,目标板(即开发板)和主机可以ping通。

2》 编译:

/home/arm下新建目录sshwork,并且将源码复制到该目录下。

mkdir /home/arm/sshwork

cp zlib-1.2.3.tar.gz openssl-0.9.8d.tar.gz openssh-4.6p1.tar.gz

/home/arm/sshwork

/home/arm/sshwork下新建目录lib,用来保存生成的库文件。

mkdir /home/arm/sshwork/lib

(1) 编译zlib :

tar zxvf zlib-1.2.3.tar.gz -C

.

cd zlib-1.2.3/

./configure

–prefix=/home/arm/sshwork/lib/zlib-1.2.3

修改Makefile :

CC=gcc 改为: CROSS=/usr/local/arm/3.4.1/bin/arm-linux-

CC=$( CROSS ) gcc

LDSHARED= gcc 改为:LDSHARED=$( CROSS ) gcc

CPP= gcc - E 改为:CPP=$(

CROSS ) gcc - E

AR= ar

rc 改为:AR=$( CROSS ) ar rc

开始编译: make

make install

(2) 编译openssl:

tar zxvf openssl-0.9.8d.tar.gz

./Configure

--prefix=/home/arm/sshwork/lib/openssl-0.9.8d

os/compiler:arm-linux-gccmake

make install

(3)编译openssh:

tar zxvf

openssh-4.6p1.tar.gz

cd openssh-4.6p1/

./configure –host=arm-linux

–with-libs –with-zlib=/home/arm/sshwork/lib/zlib-1.2.3

–with-ssl-dir=/home/arm/sshwork/lib/openssl-0.9.8d

–disable-etc-default-login

CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc

AR=/usr/local/arm/3.4.1/bin/arm-linux-ar

make

##不要make install

3》安装

确保目标板上有以下目录,如果没有,则新建:

/usr/sbin

/usr/local/bin

/usr/local/libexec

/usr/local/etc/

(1) 将

openssh-4.6p1目录下的sshd

拷贝到 目标板的/usr/sbin目录下

(2) 再copy scp

sftp ssh

ssh-add ssh-agent ssh-keygen ssh-keyscan

到目标板/usr/local/bin

目录下

copy sftp-server ssh-keysign到/usr/local/libexec

将sshd_config ,ssh_config拷贝到/usr/local/etc/目录下

(3)在目标板上新建sshd工作目录

mkdir -p /var/run

mkdir -p /var/empty/sshd

chmod 755 /var/empty

(4)在主机上:

ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""

ssh-keygen -t rsa -f ssh_host_rsa_key -N ""

ssh-keygen -t dsa -f ssh_host_dsa_key -N ""将生成的

ssh_host_*_key这3个文件copy到目标板的

/usr/local/etc/目录下

(5)

添加用户(这一步不要做)

将主机上/etc/ 目下的

passwd, shadow, group 三个文件copy到目标板的 /etc 目录下, 同时记得将passwd的最后

/bin/bash 该为 /bin/sh

//这一步以后,开发板上的用户结构与你本机的结构就是一样的了,所以在cp之前先把你自己的root密码设好

//#passwd设置root密码,然后在把上面3个文件cp到开发板/etc下

其实可以删除不需要的一些用户。

4》测试

目标板启动sshd: #/usr/sbin/sshd

可能出现的错误:

Privilege separation user

sshd does not exist

//需要在开发板的系统里adduser shhd

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

sshd:x:74:74:Privilege-separated

SSH:/var/empty/sshd:/sbin/nologin

Permissions 0755 for

'/usr/local/etc/ssh_host_dsa_key' are too open.

//则把目标板/usr/local/etc/下的ssh_host_*几个文件的权限改为700。如果出现权限不够问题,用su -

root进入root用户再改。

命令:#chmod 700 ssh_host_*

Permission denied

(publickey,password,keyboard-interactive).

//打开开发板/usr/local/sshd_config,将PermitRootLogin yes前的注释“#”号去掉。

主机: $ ssh root@192.168.0.34(开发板的ip)//root密码就是你开发板上root的密码,如果之前root没有密码,需要重新设置,用passwd

root,然后输入密码即可。

登录成功后如下图:

blog_7f2a9a390100ww2y.htmla4c26d1e5885305701be709a3d33442f.png

putty登录

blog_7f2a9a390100ww2y.htmla4c26d1e5885305701be709a3d33442f.png

linux主机登录

怎么样,有成就 感了吧

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐