1、下载下面3个文件
openssh-4.6p1.tar.gz
http://www.openssh.com/portable.html
openssl-0.9.8e.tar.gz
zlib-1.2.3.tar.gz
2、交叉编译⑴ cd zlib-1.2.3/
./configure --prefix=./
修改Makefile:
CC=gcc 改为:
CROSS=/opt/cgt_a8/arm-2009q1/bin/arm-none-linux-gnueabi-
CC=$(CROSS)gcc
LDSHARED=gcc 改为: LDSHARED=$(CROSS)gcc
CPP=gcc -E 改为: CPP=$(CROSS)gcc -E
AR=ar rc 改为: AR=$(CROSS)ar rc
make
make insall
⑵编译openssl
tar zxvf openssl-0.9.8d.tar.gz
./Configure --prefix=/home/openssl-0.9.8d os/compiler:/opt/cgt_a8/arm-2009q1/bin/arm-none-linux-gnueabi-gcc
make
make install
⑶编译openssh
cd openssh-4.6p1
./configure --host=arm-linux --with-libs --with-zlib=/opt/zlib-1.2.3/ --with-ssl-dir=/home/openssl-0.9.8d --disable-etc-default-login CC=/opt/cgt_a8/arm-2009q1/bin/arm-none-linux-gnueabi-gcc AR=/opt/cgt_a8/arm-2009q1/bin/arm-none-linux-gnueabi-ar
make
3. 安装
(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
(3) 在目标板下: 下面操作一定要在开发板上运行
mkdir -p /usr/local/etc/
然后将openssh下的sshd_config , ssh_config 拷贝到该目录下
mkdir -p /var/run; mkdir -p /var/empty/sshd
chmod 755 /var/empty
(4)在主机上:
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_host_* 6个文件copy到目标板的 /usr/local/etc/目录下,
-rw------- 1 root root 668 Apr 11 11:04 ssh_host_dsa_key
-rw-r--r-- 1 root root 600 Apr 11 11:04 ssh_host_dsa_key.pub
-rw------- 1 root root 973 Apr 11 11:04 ssh_host_key
-rw-r--r-- 1 root root 637 Apr 11 11:04 ssh_host_key.pub
-rw------- 1 root root 1675 Apr 11 11:04 ssh_host_rsa_key
-rw-r--r-- 1 root root 392 Apr 11 11:04 ssh_host_rsa_key.pub
注意上面六个文件的可执行权限,一定要这上面的权限,如果不是,请用chmod修改。
启动:执行/usr/sbin/sshd
如果出现类似Could not load host key: /usr/local/etc/ssh_host_dsa_key错误,可能原因是文件权限问题,或者生成这几个文件没有成功,可以重新执行上面的⑷点,重新将文件拷贝到目标板的/usr/local/etc/目录下。
如果出现://Privilege separation user sshd does not exist
就在/etc/passwd 中添加下面这一行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin