全志A33 ssh移植配置(已成功)

编译步骤

在这里插入图片描述
参考网页:https://www.cnblogs.com/hongzhunzhun/p/7241192.html

编译的具体操作:

1.下载源码包,地址如下:

openssh http://www.openssh.com/portable.html
openssl http://www.openssl.org/source
zlib http://www.zlib.net/

2.交叉编译

在虚拟机中创建工作目录:

mkdir /work/ssh -p
cd ssh
mkdir compress install source

解压安装包:

(解压包在compressed目录下)

 cd /work/ssh/source/
 tar -xvf ../compressed/zlib-1.2.1.2.tar.gz
 unzip ../compressed/openssl-OpenSSL_0_9_6-stable.zip
 tar -xvf ../compressed/openssh-5.2p1.tar.gz
 mv zlib-1.2.1.2 zlib
 mv openssl-OpenSSL_0_9_6-stable openssl
 mv openssh-5.2p1 openssh

交叉编译 zlib:

 cd  /work/ssh/source/zlib
 ./configure --prefix=/work/ssh/install/zlib

修改Makefile,不然编译不对

vim Makefile
CC=arm-linux-gnueabi-gcc
AR=arm-linux-gnueabi-ar rc
CPP =arm-linux-gnueabi-gcc -E
LDSHARED=arm-linux-gnueabi-gcc

 make
 make install

交叉编译openssl

 cd  /work/ssh/source/openssl
 ./Configure --prefix=/work/ssh/install/openssl os/compiler:arm-linux-gnueabi-gcc
  
 make
 make install

交叉编译openssh

 cd  /work/ssh/source/ openssh-4.6p1
./configure --host=arm-none-linux-gnueabi --with-libs --with-zlib=/work/ssh/install/zlib-1.2.11 --with-ssl-dir=/work/ssh/install/openssl-0.9.8e --disable-etc-default-login CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar
make

openssh不需要make install

移植步骤

在这里插入图片描述

参考网页:https://blog.csdn.net/weixin_43549602/article/details/84025910

打包可执行程序

mkdir /work/ssh/transplant/sbin -p
mkdir /work/ssh/transplant/bin
mkdir /work/ssh/transplant/usr/local/openssh/bin -p
mkdir /work/ssh/transplant/usr/local/openssh/etc
mkdir /work/ssh/transplant/usr/local/libexec
cp /work/ssh/install/{scp,sftps,sh,ssh-add,ssh-agent,ssh-keygen,ssh-keyscan} /work/ssh/transplant/usr/local/openssh/bin
cp /work/ssh/install/{sshd_config,ssh_config} /work/ssh/transplant/usr/local/openssh/etc
cp /work/ssh/install/{sshd} /work/ssh/transplant/sbin
cp /work/ssh/install/{sftp-server,ssh-keysign} /work/ssh/transplant/usr/local/libexec
cd /work/ssh/bin
ln -s /usr/local/openssh/bin/scp
ln -s /usr/local/openssh/bin/sftp
ln -s /usr/local/openssh/bin/ssh
ln -s /usr/local/openssh/bin/ssh-add
ln -s /usr/local/openssh/bin/ssh-agent
ln -s /usr/local/openssh/bin/ssh-keygen
ln -s /usr/local/openssh/bin/ssh-keyscan
cd ../
tar -cvf openssh_exe.bin ./

这里图片是从网上直接拷贝的不全一样
这里图片是从网上直接拷贝的不全一样

移植到开发板

将openssh.bin拷贝到开发板,然后再根目录解压,我是拷贝到了/opt/下

扫描二维码关注公众号,回复: 11292415 查看本文章
cd /
tar -xvf /opt/openssh.bin
cat /etc/passwd
cat /etc/group

需要在/etc/目录下的passwd 和 group中添加相关的东西,但是这里我并不成功,主要问题出现在group和passwd总结配置,还有ssh-keygen 没办法配置ecdsa相关的,我记得提示好像是没有这个,可能是编译器问题,或者说我觉得最大的可能是编译器
我用了别的方法规避,如果有谁能弄好,烦请告知一下,谢谢

原文是这样写的:

openssh_exe.tar.gz直接解压到开发板的根目录。
新增组1000和用户sshd,如下:

~# cat /etc/passwd
root:ML0.Qje4scloA:0:0::/root:/bin/sh
sshd:IS4VGUBxdRfJE:1000:1000::/home/sshd:/bin/sh
~# cat /etc/group
root::0:
sshd:x:1000:sshd

~~

这里虽然我把文件类似的直接照抄了 sshd:IS4VGUBxdRfJE:1000:1000::/home/sshd:/bin/sh sshd❌1000:sshd

~~

这里/home/sshd最后会被当作sshd用户的根目录,权限很重要!!!
/home权限如下:
drwxr-xr-x 3 root root 0 Jan 1 00:06 home
/home/sshd权限如下:
drwxr-xr-x 3 root root 0 Jan 1 00:15 sshd
新增/home/sshd/test权限如下,用作测试:
drwxrwxrwx 2 sshd sshd 0 Jan 1 01:26 test
修改sshd用户密码
~ # passwd sshd
Changing password for sshd
New password: 
Bad password: too short
Retype password: 
Password for sshd changed by root

~
密码确实很容易修改
~

生成密钥
~ # cd /usr/local/etc/
/usr/local/etc # ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
/usr/local/etc # ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
/usr/local/etc # ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""
/usr/local/etc # ssh-keygen -t dsa -f ssh_host_ed25519_key -N ""

~
这里的ecdsa 显示没有文件,别的都正常
~

编辑配置文件,/usr/local/openssh/etc/sshd_config留作备份,实际使用的/usr/local/etc/sshd_config

~
我自己的路径应该是一样的
~

/usr/local/etc # cp /usr/local/openssh/etc/sshd_config .
usr/local/etc # ls -lh
/usr/local/etc # ls -lh
total 11
-rw-------    1 root     root        1.3K Jan  1 00:12 ssh_host_dsa_key
-rw-r--r--    1 root     root         601 Jan  1 00:12 ssh_host_dsa_key.pub
-rw-------    1 root     root         505 Jan  1 00:12 ssh_host_ecdsa_key
-rw-r--r--    1 root     root         173 Jan  1 00:12 ssh_host_ecdsa_key.pub
-rw-------    1 root     root         399 Jan  1 00:12 ssh_host_ed25519_key
-rw-r--r--    1 root     root          93 Jan  1 00:12 ssh_host_ed25519_key.pub
-rw-------    1 root     root        1.8K Jan  1 00:11 ssh_host_rsa_key
-rw-r--r--    1 root     root         393 Jan  1 00:11 ssh_host_rsa_key.pub
-rw-r--r--    1 root     root        3.4K Jan  1 00:01 sshd_config
sshd_config修改如下:
PermitRootLogin yes
HostKey /usr/local/etc/ssh_host_rsa_key
HostKey /usr/local/etc/ssh_host_ecdsa_key
HostKey /usr/local/etc/ssh_host_dsa_key
HostKey /usr/local/etc/ssh_host_ed25519_key

PubkeyAuthentication yes

PasswordAuthentication yes
PermitEmptyPasswords no

AllowUsers sshd root

Subsystem sftp internal-sftp

Match group 1000
  ChrootDirectory /home/sshd
  X11Forwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp

~~
这里我的内容是这样:

PermitRootLogin yes
Protocol 2
HostKey /usr/local/etc/ssh_host_rsa_key
HostKey /usr/local/etc/ssh_host_dsa_key
HostKey /usr/local/etc/ssh_host_ed25519_key

PubkeyAuthentication yes

PasswordAuthentication yes
PermitEmptyPasswords no

AllowUsers sshd root

Subsystem sftp internal-sftp

Match group 1002
  ChrootDirectory /home/sshd
  X11Forwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp

~~

运行sshd
/sbin/sshd

到这里原文结束了

这里运行一般会有点问题的,出现什么问题就百度一下就好了,当然也可以留言,我看到会想办法帮你的

配置无密码登录

在这里插入图片描述

介绍

这个百度直接就可以查到相关的介绍
这里我给的参考是这个:https://jingyan.baidu.com/article/cbcede076bc84302f50b4d4c.html
具体步骤如下:

在虚拟机和开发板产生密钥

在虚拟机和开发板分别输入命令创造密钥

ssh-keygen

输入这个命令以后,之后需要几个选项,直接回车就可以

复制相互的密钥

然后将虚拟机的id_rsa.pub 里面的内容拷贝放到 开发板的authorized_keys文件当中
开发板可能没有authorized_keys这个文件,直接自己创建,然后把虚拟机的id_rsa.pub的内容复制进来就可以了

这个文件在~/.ssh 这个目录当中

最后复制开发板的authorized_keys内容,到虚拟机当中就可以了

最后运行

ssh [email protected]

会有一些报错,但是是可以登录进去的
有错误就多重启几次

主要试错关键点:
1.板子和虚拟机能不能ping通
2.板子和虚拟机能不能打开sshd
3.虚拟机单独能不能被putty的ssh登陆进去

猜你喜欢

转载自blog.csdn.net/for_free_1/article/details/106734026