無論是搭建qt creator,還是調試多個程式,ssh都非常重要,以下是qnx7.0開啟ssh方法。
###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