qnx7.0 启动ssh
- <1>由于QNX启动后挂载的镜像文件系统是只读的,因此要使得文件系统可写,此处,BBB板子可将emmc挂载到 /。假设emmc已经格式化为qnx6文件系统。 其中-o使得当前挂载设备在当期挂载命名空间中优先级最高
mount -t qnx6 -o before /dev/emmc0t179 /
非常重要的一点:镜像中虽然已经有了/etc目录,但此时若直接在etc目录中新建文件夹或者文件依然会失败,因为/etc目录时属于镜像文件系统,而新挂载的emmc设备中并没有/etc,故挂载后依然需要在/目录下执行
cd /
mkdir /etc
mkdir /etc/ssh
才能存在ssh目录,使得后面的ssh-keygen能够顺利生成key文件!!!
2.配置build文件
主要参照以下:
##密码和用户信息,主要看passwd中有没有ssh用户
/etc/passwd=${QNX_TARGET}/etc/passwd
/etc/group=${QNX_TARGET}/etc/group
##用于生成key文件
/usr/bin/ssh-keygen=ssh-keygen
/usr/sbin/sshd=sshd
/usr/lib/libcrypto.so.2=libcrypto.so.2
[type=dir] /var/chroot
[type=dir dperms=0700] /var/chroot/sshd
##非常重要的ssh_config文件
[type=dir] /etc/ssh
/etc/ssh/sshd_config={
Protocol 2
LoginGraceTime 600
PermitRootLogin yes
PasswordAuthentication yes
PermitEmptyPasswords yes
PrintMotd no
Subsystem sftp /usr/libexec/sftp-server
}
##用于文件上传的SFTP服务
[type=dir] /usr/libexec
/usr/libexec/sftp-server = ${QNX_TARGET}/${PROCESSOR}/usr/libexec/sftp-server
/etc/services=${QNX_TARGET}/etc/services
/etc/inetd.conf={
ssh stream tcp nowait root /usr/sbin/sshd in.sshd -i
}
##用于设定终端命令行
/etc/profile={
export PATH=:/proc/boot:/sbin:/bin:/usr/sbin:/usr/bin
export LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll:/usr/lib/graphics:/usr/lib/graphics/am335x
export GRAPHICS_ROOT=/usr/lib/graphics/am335x
}
inetd
random
##前面的路径不要省略,否则后续配置Qt creator会出现问题!!!!!
##需要保持和SDP7.0安装路径target中放置路径一致!!
/bin/chmod=chmod
/bin/kill=kill
/bin/mkdir=mkdir
/bin/ps=ps
/bin/uname=uname
/usr/bin/awk=awk
/usr/bin/grep=grep
/usr/bin/netstat=netstat
/usr/bin/printf=printf
/usr/bin/sed=sed
/usr/bin/sleep=sleep
/bin/slog2info = slog2info
build启动脚本出增加
devc-pty
waitfor /dev/ptyp0 4
waitfor /dev/socket 4
PATH=$PATH:/usr/bin qconn port=8000
inetd &
pdebug
3.生成key文件
# /proc/boot/random -t -p
# ssh-keygen -q -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
# ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
# ssh-keygen -t rsa -f /etc/ssh/ssh_host_key -b 1024
# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
# ssh-keygen -A
# mkdir /root
创建路径 /var/chroot/sshd/
启动sshd ,记得需要全路径
# /usr/sbin/sshd
有可能报key文件权限错误,此时如果使用的时linux文件系统,则直接chmod 400 xxx_key即可。
如果时放在fat文件系统中,如sd卡,则因为fat文件系统不支持linux权限,只能把生成的key文件放到镜像中
在开发机/$QNX_TARGET /etc/ssh/下新建文件夹ssh,把之前生成的key文件放入,再build文件中增加下文即可。
[uid=0 gid=0 perms=0400] /etc/ssh/ssh_host_dsa_key=${QNX_TARGET}/etc/ssh/ssh/ssh_host_dsa_key
[uid=0 gid=0 perms=0400] /etc/ssh/ssh_host_ecdsa_key=${QNX_TARGET}/etc/ssh/ssh/ssh_host_ecdsa_key
[uid=0 gid=0 perms=0400] /etc/ssh/ssh_host_ed25519_key=${QNX_TARGET}/etc/ssh/ssh/ssh_host_ed25519_key
[uid=0 gid=0 perms=0400] /etc/ssh/ssh_host_key=${QNX_TARGET}/etc/ssh/ssh/ssh_host_key
[uid=0 gid=0 perms=0400] /etc/ssh/ssh_host_rsa_key=${QNX_TARGET}/etc/ssh/ssh/ssh_host_rsa_key