![使用华硕 Merlin 固件在路由器上进行无密码基于公钥的 SSH 登录](https://linux22.com/image/1557372/%E4%BD%BF%E7%94%A8%E5%8D%8E%E7%A1%95%20Merlin%20%E5%9B%BA%E4%BB%B6%E5%9C%A8%E8%B7%AF%E7%94%B1%E5%99%A8%E4%B8%8A%E8%BF%9B%E8%A1%8C%E6%97%A0%E5%AF%86%E7%A0%81%E5%9F%BA%E4%BA%8E%E5%85%AC%E9%92%A5%E7%9A%84%20SSH%20%E7%99%BB%E5%BD%95.png)
我正在尝试在运行 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 字段上方。
请随意发布这点信息...这有点像在某些复杂的操作方法中缺少语法......