- 开发板:freescale mpc8247
- 宿主机操作系统:ubuntu 14.04
- 开发板操作系统:linux 2.6.25
参考博客:
向嵌入式linux开发板移植openSSH_SiberiaBear的专栏-CSDN博客
通过修改配置文件,手动创建一个Linux可登陆账户_XiChuan的博客-CSDN博客_登录配置文件linux
openssh下载地址:Index of /pub/OpenBSD/OpenSSH/portable/
这里还需要用到openssl库,由于板子中本来已经有openssl库,因此直接只用就可以。
使用的版本是openssh-6.0p1.tar.gz
1、下载openssh-6.0ptar.gz
2、在交换机源码目录执行. setenv_mpc8247
3、解压tar –xzvf openssh-6.0p1.tar.gz
4、给权限chmod -R 777 openssh-6.0p1
5、进入openssh-6.0p1文件夹,cd openssh-6.0p1
6、执行./configure --host=powerpc-linux-gnu --prefix=/usr/local/openssh --disable-zlib --with-ssl-dir=/home/share/JewinH/SVN/SwitchSoftware/Application/freescale/usr/local/gcc-4.2.82-eglibc-2.5.82/powerpc-linux-gnu/powerpc-linux-gnu/libc/usr/include/openssl --disable-etc-default-login --disable-strip CC=powerpc-linux-gnu-gcc AR=powerpc-linux-gnu-ar
解释configure的内容,host是工具链,disable-zlib是指不压缩(这样可以少调用一个库,后期可以考虑增加zlib进去,可以节省空间),with-ssl是系统中的ssl路径,这个与httpd编译过程中用同一个ssl就可以,CC,AR是编译器。其他项目加上不会错。
7、执行make,生成了一系列文件,生成的文件就是需要拷贝到交换机中的。
8、进入到挂载目录执行以下指令
mkdir ssh
cd ssh
mkdir bin
mkdir etc
mkdir libexec
9、把编译出来的文件和配置文件拷贝到对应文件夹
把scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan拷贝到ssh/bin
把moduli ssh_config sshd_config拷贝到ssh/etc
把sftp-server ssh-keysign拷贝到ssh/libexec
把sshd拷贝到ssh
10、进入交换机,把对应文件夹拷贝到交换机,对应需要执行的指令如下:
mkdir /mnt/nfs
mount -t nfs -o nolock 222.111.111.223:/home/share/mount_httpd /mnt/nfs/
cd /mnt/nfs/ssh
mkdir /var/empty
mkdir /usr/local/openssh
cp –r bin /usr/local/openssh/
cp -r etc /usr/local/openssh/
cp -r libexec /usr/local/
cp sshd /mnt/SWITCH/ssh/
至此,就完成了移植工作,下面进行修改相关配置工作。
11、修改sshd_config文件
vi /usr/local/openssh/etc/sshd_config
找到两句话:
#PermitRootLogin yes
#Subsystem sftp /usr/libexec/sftp-server
修改为以下两句话:
PermitRootLogin yes
Subsystem sftp /usr/local/libexec/sftp-server
保存退出。
12、生成证书密码对,对应的指令如下:
cd /usr/local/openssh/etc/
/usr/local/openssh/bin/ssh-keygen -t rsa1 -f ssh_host_key -N ""
/usr/local/openssh/bin/ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
/usr/local/openssh/bin/ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
/usr/local/openssh/bin/ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""
13、配置用户,增加一个用户sshd
vi /etc/passwd
在末尾增加一行:
sshd:x:74:74:Privilege-separated SSH:/mnt/SWITCH/roofdir:/bin/sh
vi /etc/shadow
在末尾增加一行:
sshd:$1$2p7fIhHL$XPeJiXGOcI.yFFh66jO9x/:11851:0:99999:7:::
vi /etc/group
在末尾增加一行:
sshd::74:sshd
14、给用户设置密码
passwd root(如果不希望root用户可以登录,就不要执行这一句。)
输入两次密码
passwd sshd
输入两次密码
15、kill掉dropbear,启动sshd
killall dropbear
/mnt/SWITCH/ssh/sshd
ps一下,可以看到sshd已经起来了
- 打开FlashFXP软件,用sftp链接交换机
链接成功
16、用root用户,我们可以访问任何路径。我们使用sshd用户,让该用户只能访问/mnt/SWITCH/roofdir文件夹。
17、设置好文件夹的权限
chmod 711 /
chmod 711 /mnt/
chmod 711 /mnt/SWITCH/
chmod 755 /mnt/SWITCH/roofdir
chmod –R 777 /mnt/SWITCH/roofdir/MEAS
chmod –R 777 /mnt/SWITCH/roofdir/configuration
chmod -R 711 /usr/local/libexec
18、用sshd用户登录sshd,用户不能进入别的文件夹,只能操作configuration和MEAS文件夹。至此sftp服务器已搭建完成。