openwrt开启使用密钥访问,OpenWrt无需密码登录设置方法
OpenWRT的ssh和标准ssh所需要的秘钥格式不同(ssh-kengen产生的是PEM格式),想要生成能够正常工作的秘钥,使用下面的命令。
dropbearkey -t rsa -f ~/.ssh/id_rsa dropbearkey -t rsa -f ~/.ssh/id_rsa -s 2048
结合以前写的文章使用ssh的反向隧道管理内网路由器,我们使用如下命令就可以实现,假设我们把路由器的22端口映射到VPS上的2222端口,假设我们已经建立了到VPS的免登陆。
ssh -gfTN -R 0.0.0.0:2222:lu.you.qi.ip:22 v.p.s.ip -p ssh.port -l username -K 30
解释:
0.0.0.0 指 映射到IPV4
11111 指 将要映射到的端口
lu.you.qi.ip 指 路由器的LAN口IP
v.p.s.ip 指 VPS的IP
ssh.port 指 登录VPS的端口
username 就不说了
-K 30 指的是每隔30s发送一段加密数据以保持链接
1、开机启动:
vi /etc/init.d/ssh
#!/bin/sh /etc/rc.common # Mr.Gao endoffight@gmail.com # Copyright (C) 2007 OpenWrt.orgSTART=99 STOP=15 VPS_IP=blog.phpgao.com VPS_PORT=22 VPS_USERNAME=laogao LOCAL_PORT=192.168.1.1:22 REMOTE_PORT=0.0.0.0:2222 PROG=/usr/bin/ssh KEEP_ALIVE=30start() { $PROG -gfTNR $REMOTE_PORT:$LOCAL_PORT $VPS_IP -p $VPS_PORT -l $VPS_USERNAME -K $KEEP_ALIVE}stop() { killall -q -9 ssh return 0 }
2、接着执行
chmod a+x /etc/init.d/ssh /etc/init.d/ssh enable /etc/init.d/ssh start
3、补充说明
免密登录到OpenWrt
如果本地是用ssh-keygen生成的密钥对,那么只需要将公钥上传到路由器的/etc/dropbear/authorized_keys中就行了:
cat ~/.ssh/id_rsa.pub | ssh root@192.168.1.1 'cat >> /etc/dropbear/authorized_keys'
4、最后还有关键的一步:
看起来ssh-agent已在运行,但找不到任何附加的密钥。 为了解决这个问题,将私钥标识添加到身份验证代理,如下所示:
ssh-add
然后你就可以ssh登录openwrt了
点击链接加入群聊三群:751529538
点击链接加入群聊二群:376877156
点击链接加入群聊【路由器交流群:622891808已满】
本站附件分享,如果附件失效,可以去找找看
饿了么红包