我正在尝试在运行 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 用户身份尝试了 和root
。admin
在将路由器重置为出厂设置后,我还从头尝试了一切,结果相同。
我遗漏了什么吗?此时,我认为我唯一的选择是从中提取 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 字段上方。
请随意发布这点信息...这有点像在某些复杂的操作方法中缺少语法......