OpenWRT编译安装OpenSSH替代Dropbear

OpenWRT 默认 ssh 组件使用 Dropbear,但不带 SFTP,当然你也可以后续再安装,又或者直接使用 openssh 替代 dropbear,像我这样折腾。

编译配置

进入您的编译目录,执行 make menuconfig 进入配置界面

取消 Dropbear

路径:Base System 里面取消勾选 Dropbear

编译 OpenSSH

路径 Network -> SSH 如图勾选

最后记得保存,随后编译安装即可!

SSH 登录配置

直接编译安装的 OpenSSH 默认不支持密码登录,所以你无论怎样也连不上,是不是发现被坑了?哈哈,皮一下,毕竟这个坑我给大家趟过了,这里提供两种方法。

1、密钥登录

在编译之前,提前写入固件自己登录设备的公钥,具体操作:

进入编译目录,再进入路径:/package/base-files/files/,随后建立一个二级目录 root/.ssh/,所以完整的路径为:
编译目录/package/base-files/files/root/.ssh

新建一个文件 authorized_keys,写入自己电脑公钥即可,编译刷入固件之后,则无需密码直接登录。

2、利用 luci 开启密码登录

如果已经安装 luci,并且设置了密码,那么适合本方法,具体操作:

登录 luci 后台,依次找到 System -> Starup -> Locale Startup,会看到一个脚本编辑页面,在最后一行内容 exit 0 之前写入以下内容:

sed -i “s/#PasswordAuthentication yes/PasswordAuthentication yes/g” /etc/ssh/sshd_config
sed -i “s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g” /etc/ssh/sshd_config

随后后台 System -> Reboot 点击重启,重启之后会发现已经可以直接使用密码登录,随后上面的增加的脚本内容则可以去掉啦。

可能的错误

以上都是基于 Openwrt 官方源码编译的操作流程,如果您基于 lede 的源码,那么编译之后可能会出现这个错误:

无论怎么改密码亦或者使用密钥,均无法正常登陆,在 luci 后台系统日志里面出现以下错误日志:
fatal: privsep_preauth: preauth child terminated by signal 31

那你可以参考一下这个解决方法,至于这个为什么会出现这个问题,暂时未知。

TG交流群(点击进入)----付费帮助搭建---修复---二开,以及发布求资源.
QQ交流群 922260178
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容