使用华硕 Merlin 固件在路由器上进行无密码基于公钥的 SSH 登录

使用华硕 Merlin 固件在路由器上进行无密码基于公钥的 SSH 登录

我正在尝试在运行 384.4_2 版本的 ASUS RT-AC68U 家用路由器上启用无密码 SSH 登录Asuswrt-Merlin 固件(发帖时最新的一篇)。读过很多帖子和指南(包括这个),我还是无法让它工作。

我使用 PUTTYGEN 生成一对 RSA-2048 密钥,将公钥保存在~/.ssh/authorized_keys路由器上,然后尝试使用 PUTTY 进行连接,我已将其限制为仅使用 RSA。当 PUTTY 协商会话加密时,它会提示接受服务器提供的公钥。我希望它是我的密钥~/.ssh/authorized_keys,但我总是看到 dropbear 自己的公钥(来自/etc/dropbear/dropbear_rsa_host_key)。我跑过去一看就知道是那一个dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key

文件夹的权限~/.ssh设置为700,对于 ,~/.ssh/authorized_keys设置为600。密钥通过路由器的 Web UI 以正确的格式保存(即 ,ssh-rsa AAAA...5iYw== rsa-key-20180401没有换行符)。我以 SSH 用户身份尝试了 和rootadmin在将路由器重置为出厂设置后,我还从头尝试了一切,结果相同。

我遗漏了什么吗?此时,我认为我唯一的选择是从中提取 dropbear 的私钥/etc/dropbear/dropbear_rsa_host_key并使用它,而不是生成我自己的私钥。

答案1

把你的公钥放入/etc/dropbear/authorized_keys

编辑:

我原本以为 dropbear 没有读取~/.ssh(尽管它应该读取),所以我指出了默认目录/etc/dropbear/authorized_keys默认情况下它不存在,所以不是那么明显。

重新阅读该问题后,我意识到您混淆了主机密钥对和登录密钥对。

您需要接受路由器主机密钥对(/etc/dropbear/dropbear_rsa_host_key)并将您的公钥放在路由器的任一位置的authorized_keys文件中,这样就可以了。

答案2

上面的 TB 帖子中缺少一条非常重要的信息。要使 ssh 在 ausus merlin 386.3_2 和很可能是其他版本上运行,“必须在路由器中启用 Jiffs 分区”。我只启用了 Jiffs,但没有格式化它,因为那里已经有配置文件等,如果删除它们,可能会成为另一个麻烦。

在 asus merlin wui 中启用 Jiffs 分区,应该位于管理下的 ssh 字段上方。

请随意发布这点信息...这有点像在某些复杂的操作方法中缺少语法......

相关内容