参考1: https://openwrt.org/docs/guide-user/security/secure.access#create_a_non-privileged_user_in_openwrt

我们都知道,openwrt 使用轻量化的 ssh 服务程序 dropbear

Description: A small SSH2 server/client designed for small memory environments.

root 用户的 ssh 私钥配置以及访问之前写过一篇 openwrt dropbear配置 | 在客户端使用ssh-key密钥形式免密码登录openwrt(或其他Linux系统)

root 用户使用的配置文件是 /etc/dropbear/authorized_keys 但是普通用户呢?应该和其他普通 Linux 发行版类似,保存在 /home/USER_NAME/.ssh/authorized_keys。网上的一些文章可能对于权限设置这一块没有讲清楚或者我实践后发现不对,特写这篇文章来说明一下。

参考2: OpenWRT新建普通用户+权限设置+免密码登录(ssh公钥验证)

上面这篇文章中,文件/文件夹权限的设置经过我的实践后失败。我在此记录一下我的配置。

  1. 首先要在本地电脑上创建私钥和公钥对,比如我的私钥就是 /Users/huadekai/.ssh/softRouter_id_rsa (和 root 用户共用的,没什么关系)
  2. 编辑本地 /Users/huadekai/.ssh/config 文件,添加如下配置

    Host routerdk
        Hostname 10.10.10.1
        IdentityFile /Users/huadekai/.ssh/softRouter_id_rsa
        User dk
        Port 1003
  3. 软路由上创建用户 dk 我事先已经创建好,并且配置了家🏠️目录 /home/dk,设置了登录 shell 为 /bin/bash
  4. 在软路由上使用 dk 用户登录,在 /home/dk 创建 .ssh 文件夹,再在 .ssh 文件夹下创建 authorized_keys 文件,把 mac 电脑上的 /Users/huadekai/.ssh/softRouter_id_rsa.pub 文件内容粘贴进去,再设置一下权限

    # chown -R dk:dk /home/dk
    # chmod -R 755 /home/dk/.ssh

    设置了 755 权限后我才能通过 ssh routerdk 免密登录软路由。按理说应该是 640 最小权限即可。在此记录。

    [email protected] ~ % ssh routerdk
    _______                     ________        __
    |       |.-----.-----.-----.|  |  |  |.----.|  |_
    |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
    |_______||   __|_____|__|__||________||__|  |____|
            |__| W I R E L E S S   F R E E D O M
    -----------------------------------------------------
    OpenWrt SNAPSHOT, r2406-f8bd6e0 , Mask Ver.D200401
    -----------------------------------------------------
    [email protected]:~$

最终实现了目的就好…… end.