文章目錄 1 基本文件的安裝 2 生成 Key 文件,并安裝 3 修改目標板密鑰文件 4 測試 1 基本文件的安裝 在文件系統(tǒng)busybox上新建“/usr/libexec“、“/usr/local/etc ”、“/usr/local/bin ”三個目錄,使用命令“mkdir -p /usr/libexec /usr/local/etc /usr/local/bin”,如圖 1.1所示。 ![]() 在虛擬機 Ubuntu 上,將 openssh-6.6p1 下的生成“scp 、sftp、ssh、sshd、ssh- add、ssh-agent、ssh-keygen、ssh-keyscan”可執(zhí)行文件拷貝到文件系統(tǒng)“/usr/local/bin”目錄下,拷貝完成,如圖 1.2所示。 ![]() 將“moduli、ssh_config、sshd_config”拷貝到開發(fā)板的“/usr/local/etc”目錄下, 拷貝完成,如圖 1.3所示。 ![]() 將“sftp-server、ssh-keysign”拷貝到開發(fā)板的“/usr/libexec”目錄下,拷貝完成, 如圖 1.4所示。 ![]() 2 生成 Key 文件,并安裝 使用“ssh-keygen”生成個四個 key 文件“ssh_host_rsa_key”“ssh_host_dsa_key” “ssh_host_ecdsa_key”和“ssh_host_ed25519_key”。 ① 在虛擬機 Ubuntu 控制臺,“/home/topeet/project/ssh-arm/openssh-4.6p1”目錄下,使用命令“ssh-keygen -t rsa -f ssh_host_rsa_key -N ""”,可以生成“ssh_host_rsa_key ”文件 ② 接著使用剩下的三條命令: ssh-keygen -t dsa -f ssh_host_dsa_key -N "" ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N "" ssh-keygen -t dsa -f ssh_host_ed25519_key -N "" 執(zhí)行完成之后,將生成的“ssh_host_rsa_key”“ssh_host_dsa_key”“ssh_host_ecdsa_key”和 “ssh_host_ed25519_key”文件,拷貝到文件系統(tǒng)的“/usr/local/etc/”目錄下,然后將其權限 修改為 600,如下圖所示。 ![]() ![]() 3 修改目標板密鑰文件 在文件系統(tǒng)中,使用命令“vi /etc/passwd”,打開 ssh 密鑰文件,在 “/etc/passwd”文件底行添加以下內(nèi)容: sshd:x:74:74 ![]() SSH:/var/empty/sshd:/sbin/nologin 添加完成之后,如下圖所示,然后保存,密鑰文件修改完成。 ![]() 4 測試 作者的開發(fā)板鏈接路由器,PC 機的 Windows 系統(tǒng)也是鏈接路由器,所以首先要確保開發(fā)板和 PC 機是可以 Ping 通的,也就是設置在同一網(wǎng)段,修改文件系統(tǒng)的/etc/eth0-setting文件。 作者的 PC 的 IP 為:192.168.123.224,如圖 4.1所示。 ![]() 開發(fā)板的 IP 為:192.168.123.150,/etc/eth0-setting文件已經(jīng)修改過。 將文件系統(tǒng)打包,燒寫到開發(fā)板上 使用 ping 命令測試,如圖 4.2所示,網(wǎng)絡通暢,另外按鍵“Ctrl”+c 可以結束 ping 動作 ![]() ![]() 接著在開發(fā)板上新建 root 賬戶,如圖 4.4所示,使用命令“passwd root”,它會提示輸 入密碼,需要重復輸入兩次以防輸錯。 ![]() 然后在開發(fā)板上運行 sshd 二進制文件,使用命令“/usr/local/bin/sshd”,提示如圖 4.5 ![]() 再去Ubuntu查看下ssh可執(zhí)行文件,file sshd ![]() 在串口控制臺輸入 ln -sv /lib/ld-2.19-2014.08-1-git.so /lib/ld-linux.so.3 建立軟鏈接,如圖 4.7所示: ![]() 然后使用工具 ssh 測試是否和 PC 聯(lián)通能否正常通信,如圖 75.3.4.8所示,使用命令 “/usr/local/bin/ssh 192.168.123.224”,這里的 IP 是作者 PC 的 IP。 ![]() 控制臺輸入“/usr/local/bin/sshd”雖然報錯了,但是不影響使用。如果提示缺少動態(tài)庫,前面的庫文件如果拷貝不全,可能出現(xiàn)這種問題,如果用戶使用迅為電子的根文件系統(tǒng),經(jīng)過測試各種文件都拷貝沒有錯誤,一般是不會提示缺少什么庫的。 ![]() 接著在 PC 上使用 ssh 工具連接開發(fā)板,使用方法和連接 Ubuntu 上的 ssh 類似,如圖 4.10所示。 ![]() ![]() 然后傳一個文件測試下,如圖 4.12所示。 ![]() 說明成功完成了文件傳輸移植工作。 ssh 控制臺也是可以使用的,登陸方法和 PC 連接虛擬機 Ubuntu 的 ssh 一 樣。 另外在安裝部分,也可以將其拷貝到文件系統(tǒng)的源碼中對應目錄,重新打包編譯,生成直接支持 ssh 的鏡像。 到這里,部分用戶可能會有疑惑,第一個人是如何知道 ssh 需要這兩個庫文件的呢?首先,開發(fā) ssh 軟件的大神,做了這個東西會提供編譯和使用 demo,這樣就有了基礎的英文移植文檔,然后慢慢的會有中文版的,接著 ssh 流傳開了之后,通過網(wǎng)絡搜索 ssh 移植到 arm的方法的文檔和博客,就隨處可見了。 當然,假如將來大家工作有移植的需求,找不到中文教程,需要直接使用某個開源軟件的 demo,首先就需要英文過關,然后還需要有移植的基礎知識。在編譯的過程中,它會提示缺少各種庫,通過編譯,也是可以一步一步找出依賴庫的。 ![]() |