天天看點

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