ssh搭建

一、资源下载
下载 openssh、openssl 和 zlib 三个包。
openssh:http://www.openssh.com/portable.html
openssl:http://www.openssl.org/source
zlib:http://www.zlib.net/
本次采用的版本见附件。
二、解压并编译,key文件生成
(1)将以上下载的3个文件解压
#tar zxvf zlib-1.2.8.tar.gz
#tar zxvf openssl-1.0.1h.tar*
#tar zxvf openssh*
(2)交叉编译zlib
#cd zlib-1.2.8
#./configure --prefix=/home/mywork/install/zlib //自己创建的安装目录
#vi Makefile //修改Makefile中的配置信息
CC=arm-linux-gcc
AR=arm-linux-gcc
CPP=arm-linux-gcc
LDSHARED=arm-linux-gcc
#make
#make install
(3)交叉编译openssl
#cd openssl-1.0.h
#./configure --prefix=/home/my_work/install/openssl os/compiler:/usr/local/arm-linux-gcc //install/openssl为自己创建的安装目录
#make
#make install
(4)交叉编译openssh
#cd openssh-6.6p1
#./configure --host=arm-linux --with-libs --with-zlib=/home/my_work/install/zlib --with-ssl-dir=/home/my_work/install/openssl --disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar
#make
注意:openssh不需要make install
(5)生成key文件
pc主机上,openssh-6.6.p1目录下:
#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 dsa -f ssh_host_ed25519_key -N ""
将生成的ssh_host_*_key八个文件。
三、移植到开发板
(1) 开发板文件夹创建
开发板/usr创建
#cd /usr
#mkdir sbin
#mkdir libexec (见文件shhd_config)
在开发板中/usr/local创建一下文件件:
#cd /usr/local
#mkdir bin etc
在开发板/var中创建:
#mkdir -p /var/run
#mkdir -p /var/empty
(2)文件移植
开发板/usr/sbin中:
pc上openssh-6.6.p1文件夹中的sshd。
开发板/usr/local/bin中:
pc上openssh-6.6.p1文件夹中的scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan
开发板/usr/local/etc中:
pc上openssh-6.6.p1文件夹中的ssh_host_*_key八个文件。
pc上openssh-6.6.p1文件夹中moduli ssh_config sshd_config三个文件。
开发板/usr/libexec中:
pc上openssh-6.6.p1文件夹中sftp-server ssh-keysign
(3)在/etc/passwd文件最后一行添加
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
四、运行ssh
在开发板上输入/usr/sbin/sshd
出现以下错误:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/usr/local/etc/ssh_host_key' are too open
等错误
解决:#cd /usr/local/etc
#chmod 0600 ssh_host*
重新运行:#/usr/sbin/sshd
出现“Could not load host key: /usr/local/etc/ssh_host_ecdsa_key”
不用管。
#ps
即可找到
2128 root 2208 S sh -c /usr/libexec/sftp-server
2129 root 2668 S /usr/libexec/sftp-server
搭建成功。如果ps没有,可以重启开发板。此时就可以通过pc对开发板进行sftp访问。

你可能感兴趣的:(ssh搭建)