美好的一天,我正在尝试弄清楚如何让用户仅使用密钥即可 ssh 进入 openWRT。 我按照以下说明进行操作: https://wiki.openwrt.org/oldwiki/dropbearpublickeyauthenticationhowto.
简而言之: 在 Linux 机器上: 如果您还没有
.ssh/id_dsa.pub
ssh-keygen -t dsa
scp ~/.ssh/id_dsa.pub [email protected]:/tmp
在 openWRT 上:
cd /etc/dropbear
cat /tmp/id_*.pub >> authorized_keys
chmod 0600 authorized_keys
当我尝试 ssh 登录时,出现此错误:
authpriv.warn dropbear[2085]:使用未知算法对 1.2.3.4:11111 的“MyUser”进行 Pubkey 身份验证尝试
我也尝试过生成 RSA 密钥,结果相同。 我可以使用密码以用户身份登录:
authpriv.notice dropbear[2089]:1.2.3.4:11111 中的“MyUser”密码验证成功
可能是OpenWRT版本的问题。 尝试改为
${HOME}/.ssh/authorized_keys
。
使用基于 OpenWRT 的 libreCMC v1.5.15(及更早版本),我注意到系统日志中出现以下 dropbear 错误:
Sat Jun 8 21:21:26 2024 authpriv.info dropbear[22699]: /etc/dropbear/authorized_keys must be owned by user or root, and not writable by others
所以我暂时启用了SSH服务(dropbear)的密码认证,然后运行:
chown root:root /etc/dropbear/authorized_keys
这似乎解决了我的问题;公钥身份验证现已成功,并且我已删除密码身份验证。