一、源碼下載
zlib:zlib-1.3.1.tar.xz
openssl:openssl-0.9.8d.tar.gz
openssh:openssh-4.6p1.tar.gz
二、交叉編譯
1、zlib
編譯參考這里
2、openssl
tar -xf openssl-0.9.8d.tar.gz
./Configure --prefix=/opt/ssh/openssl os/compiler:arm-linux-gcc
make -j8
sudo make instal
3、openssh
tar -xf openssh-4.6p1.tar.gz
./configure --host=arm-linux --with-libs --with-zlib=/opt/ssh/zlib \
--with-ssl-dir=/opt/ssh/openssl --disable-etc-default-login \
CC=arm-linux-gcc AR=arm-linux-ar
make -j8不用make install
完成后當前目錄下會生成SSH可執行文件
三、安裝SSH
1、配置文件
首先,確保目標板上有以下目錄
/usr/local/bin/
/usr/local/sbin/
/usr/local/etc/
/usr/local/libexec/
/var/run/
/var/empty/
chmod 755 /var/empty
然后,拷貝相關文件到開發板
復制 sshd 到開發板的 /usr/local/sbin/
復制 scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan 到開發板的 /usr/local/bin
復制 sftp-server ssh-keysign 到 /usr/local/libexec
復制 sshd_config ssh_config 到 /usr/local/etc/
2、生成Key文件
在開發板上,進入/usr/local/etc/目錄,執行以下命令生成key:
../bin/ssh-keygen -t rsa1 -f ssh_host_key -N ""
../bin/ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
../bin/ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
修改當前目錄下sshd_config文件,將?/etc/ssh?改為?/usr/local/etc
# HostKey for protocol version 1
HostKey /etc/ssh/ssh_host_key 》》》 HostKey /usr/local/etc/ssh_host_key
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key 》》》 HostKey /usr/local/etc/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key 》》》 HostKey /usr/local/etc/ssh_host_dsa_key
3、設置系統時間
如果開發板時間是1970需要設置為當前時間,否則ssh登錄一直報錯:
date -s "2024-05-09 16:21"
4、設置root密碼
passwd root
5、添加用戶
復制PC機 /etc 下的?passwd shadow group?到開發板 /etc 下,并將passwd文件里的 /bin/bash 改為 /bin/sh .
.
四、啟動SSH
絕對路徑啟動sshd
/usr/sbin/sshd
可能出現的錯誤:
Permissions 0755 for '/usr/local/etc/ssh_host_dsa_key' are too open.
//將開發板/usr/local/etc/下的key文件 ssh_host_* 權限改為700。Permission denied (publickey,password,keyboard-interactive).
//打開開發板/usr/local/sshd_config,將PermitRootLogin yes前的注釋“#”號去掉。
主機: $ ssh root@10.10.82.45(開發板的ip)//root密碼就是開發板root密碼,如果沒有設置,用passwd root設置。
覺得有幫助的話,打賞一下唄。。
? ? ? ? ? ?