QNX學習筆記 [IMX6Q/TQIMX6Q]通過SSHD連接QNX調試板

無論是搭建qt creator,還是調試多個程序,ssh都非常重要,以下是qnx7.0開啓ssh方法。

###qnx7.0 啓動ssh

  1. <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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章