./configure --host=arm-linux-gnueabihf --with-libs --with-zlib=/home/LinuxZn/git_clone/zlib-1.2.3/zlib_build_arm --with-ssl-dir=/home/LinuxZn/git_clone/openssl-1.0.2/openssl_build_arm --disable-etc-default-login CC=/home/LinuxZn/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc AR=/home/LinuxZn/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar
make
其中,各参数含义如下:
- --host 表示运行的平台。
- --with-libs 表示需要的库文件。
- --with-zlib 表示库文件 zlib 的安装路径。
- --with-ssl-dir 表示 openssl 文件的安装路径。
- --disable-etc-default-login 表示不使用当前环境变量的编译器,所以后面配置参数时,最后直接配置 CC 和 AR 这两个编译器。
- CC 表示设置使用的编译器。
- AR 表示设置使用的编译器的路径。
编译:
make
这时候在openssh-4.6p1目录下会生成scp 、sftp、ssh、sshd、ssh-add、ssh-agent等工具:
在板子上新建“/usr/libexec“、“/usr/local/etc ”、“/usr/local/bin ”三个目录:
mkdir -p /usr/libexec /usr/local/etc /usr/local/bin
下面把相关工具传到开发板上备用:
① 将 openssh-6.6p1 下的生成“scp 、sftp、ssh、sshd、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan”等可执行文件拷贝到开发板的/usr/local/bin目录下,命令
mv scp sftp ssh sshd ssh-add ssh-agent ssh-keygen ssh-keyscan /usr/local/bin/
② 将“moduli、ssh_config、sshd_config”拷贝到开发板的/usr/local/etc目录下。
mv moduli ssh_config sshd_config /usr/local/etc
③ 将“sftp-server、ssh-keysign”拷贝到开发板的/usr/libexec目录下。
mv sftp-server ssh-keysign /usr/libexec
④ 使用“ssh-keygen”生成个四个 key 文件“ssh_host_rsa_key”“ssh_host_dsa_key” “ssh_host_ecdsa_key”和“ssh_host_ed25519_key”。在openssh-4.6p1目录下,输入命令:
ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
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 ""
执行完成之后,将生成的如下几个文件拷贝到开发板的/usr/local/etc/目录下:
- ssh_host_rsa_key
- ssh_host_dsa_key
- ssh_host_ecdsa_key”
- ssh_host_ed25519_key
然后将它们的权限修改为 600。
mv ssh_host_rsa_key ssh_host_dsa_key ssh_host_ecdsa_key ssh_host_ed25519_key /usr/local/etc/
chmod 600 ssh_host_rsa_key ssh_host_dsa_key ssh_host_ecdsa_key ssh_host_ed25519_key
在开发板终端中,使用命令vi /etc/passwd,打开 ssh 密钥文件,在 /etc/passwd文件底行添加以下内容:
sshd:x:74:74:Privilege-separated
SSH:/var/empty/sshd:/sbin/nologin
接着在开发板上新建 root 账户,使用命令:
passwd root
然后在开发板上运行 sshd 二进制文件,命令
/usr/local/bin/sshd
可能会报错:
/usr/local/bin/sshd: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory
拷贝交叉编译器下的相关库至板子中。再次运行,可能会报错:
Could not load host key: /usr/local/etc/ssh_host_key
Disabling protocol version 1. Could not load host key
但是不影响使用。
最后,在我们的Ubuntu主机中使用ssh登录我们的开发板。首先,需要确认我们的Ubuntu主机的ip与开发板的ip是在同一网段内,如:
Ubuntu IP:192.168.1.9
开发板IP:192.168.1.10
在我们的Ubuntu中使用如下命令登录开发板:
到了这一步,我们的ssh环境就已经搭建成功了。之后就可以愉快地玩耍了!
以上就是本次的分享,整个过程要操作的步骤还是比较多的,遇到很多问题,我也参考了很多网上的博文,按照相关步骤来也还是会遇到很多问题,前前后后花了几天的业余时间才搞通的。搞Linux就是这样,会遇到很多问题。大家如果按照这篇文章操作如果遇到与本文的结果不一致的话,也是需要具体问题具体分析,可以结合多篇文章对比对比。
相关参考:
1、http://bbs.100ask.net/article/41
2、https://blog.csdn.net/qq_24835087/article/details/104783990
3、https://blog.csdn.net/Chihiro_S/article/details/109160899
4、https://blog.csdn.net/qq_22902919/article
猜你喜欢:
1024G 嵌入式资源大放送!包括但不限于C/C 、单片机、Linux等。私信回复1024,即可免费获取!