首先需要注意的是,不用于其他版本的 linux,OpenWrt 所使用的 SSH server 是 Dropbear,它可以支持 RSA Keys,但是验证路径位于/etc/dropbear/authorized_keys 操作时只需要注意公钥的放置路径即可。

这里记录下我的操作步骤:

在本机 linux 下:

生成密钥:

1
ssh-keygen

接下来需要输入存放路径时,输入

1
~/.ssh/openwrt_rsa		# 随自己喜好命名

配置~/.ssh/config文件,添加如下内容

1
2
3
4
5
# route
Host openwrt
HostName 192.168.2.1
IdentityFile ~/.ssh/openwrt_rsa
User root

将公钥上传到 openwrt 相应目录下

1
scp ~/.ssh/openwrt_rsa.pub root@192.168.2.1:/etc/dropbear/authorized_keys"

也可以使用如下命令(两者选其一):

1
ssh root@192.168.1.1 "tee -a /etc/dropbear/authorized_keys" < ~/.ssh/openwrt_rsa.pub

登陆路由器,设置权限

1
2
3
ssh openwrt
chmod 700 /etc/dropbear
chmod 600 /etc/dropbear/authorized_keys

此时就可以通过 ssh ss 直接无密码直接登陆路由器了。

Enjow ~