惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
Blog — PlanetScale
Blog — PlanetScale
腾讯CDC
A
About on SuperTechFans
Vercel News
Vercel News
I
InfoQ
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
S
SegmentFault 最新的问题
V
Visual Studio Blog
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
博客园 - 【当耐特】
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
Apple Machine Learning Research
Apple Machine Learning Research
GbyAI
GbyAI
美团技术团队

Allen Hua 的网络博客

由于 Linux 桌面没有一个好用的天气程序就写了一个跨平台的CheckitoutWeather 给 caesium-image-compressor 图片压缩程序构建了 Linux AppImage v2.8.5 最新版 debian13(debian trixie)安装了nvidia闭源驱动后从x11切换到wayland的方法 山间摩旅追风,偶遇一场绚烂晚霞 最近使用debian系统的一些心得 机械革命无界14Pro笔记本debian forky成功驱动内置扬声器和麦克风 记录 typecho 1.2.0 升级到 1.3.0 过程 开发了一款openwrt插件:文本剪贴板 解决机械革命笔记本内屏高刷240Hz闪屏问题 使用 Java 写了一个局域网端口扫描器 - Allen Hua 的网络博客 openwrt使用外置根extroot机制扩展根分区大小 - Allen Hua 的网络博客 将机场ss节点批量转换成ss字符串链接批量添加到passwall - Allen Hua 的网络博客 给机械革命钛钽plus换屏:NY2换成NZ2 - Allen Hua 的网络博客 记录一次pve宿主机和上面的debian虚机无故down机事件 - Allen Hua 的网络博客 给图床部署cdn腾讯云的edgeone并排查Cache-Control max-age 3600的问题 - Allen Hua 的网络博客 从高山草甸到徽派古村:武功山反穿与皖浙赣自驾行记 - Allen Hua 的网络博客 增程器就是充电宝?别被忽悠了 - Allen Hua 的网络博客 浦口龙虎巷扫街,记录人间真实 博客图片压缩方案更新|AVIF|WebP|MozJPEG|标准JPEG Windows 电脑使用 Obs Studio 录制各个网站视频/桌面画面教程 为typecho博客添加latex支持 新能源汽车之纯电车使用交流慢充和直流快充的充电损耗对比 2025年3月更新全国5A景区名录 2025最新查看小米/红米手机电池健康度和循环次数方法 完美解决 seafile FILE_SERVER_ROOT 配置导致的内网外网不能同时访问和上传下载的问题 纯css实现typecho博客文章文字spoiler剧透效果 我对Typecho Facile主题的一些修改,图片懒加载优化,样式定制 2024年8月我的宜昌 - 重庆 - 川西小环线自驾旅行分享 2022年打卡南京市区人防工程纳凉点 2024年带着A7C2+腾龙28-200 再次来到红山森林动物园
openwrt dropbear配置 | 在客户端使用ssh-key密钥形式免密码...
Allen Hua · 2021-04-24 · via Allen Hua 的网络博客
阅读量:11867

warning: 这篇文章距离上次修改已过1858天,其中的内容可能已经有所变动。

ssh 登录服务器,习惯了使用密码登录,但到后面的确发现每次输入密码很麻烦。那么我们使用公密钥登录服务器将会一劳永逸,不仅安全,还更方便。

一般发行版本的 Linux 系统都是使用的 sshd 作为 ssh 服务端,我们将客户端的 ~/.ssh/id_rsa.pub 拷贝到服务端的 ~/.ssh/authorized_keys 即可(Ubuntu 就是这个文件),注意权限需要至少是 600,而且权限给的越小越安全。

但 openwrt 使用的 dropbear 作为 ssh 的服务端程序,我们需要将公钥拷贝到 /etc/dropbear/authorized_keys,最好保证其文件权限是 644。

首先我们需要了解到 ssh 登录服务器需要 ssh 客户端程序和 ssh 服务端程序。

如果客户端安装有 ssh 的客户端程序,使用 ssh-keygen 命令生成一对密钥——公钥和私钥,私钥保存在客户端本机,一般的文件名是 ~/.ssh/id_rsa (这是使用 rsa 算法生成的私钥),公钥要拷贝其文本到服务端的 ~/.ssh/authorized_keys,在 openwrt 上就是要拷贝到 /etc/dropbear/authorized_keys

tips:

  • 加密方式选 rsa dsa均可以,默认 dsa,使用较多的是 rsa
  • 这里会提示你输入私钥的文件名,注意要写全了文件绝对路径(并包含文件名,比如 /Users/abc/.ssh/github_id_rsa )
  • 接着上面一行,上面的是 macOS。如果是 Linux 文件名一般是 /home/abc/.ssh/github_id_rsa
  • Windows 下 借助 git bash 也可以这样生成
  • 注意:如果你不自定义私钥的文件名,将会覆盖本机已经生成的 id_rsa 文件,如果实在要覆盖,建议备份一下
  • 使用自定义的私钥的文件名的目的是为了在本机保存多个 ssh-key
  • 比如 github 的、gitlab 的、gitee 的、还有 VPS 的、像这种自己的服务器的、openwrt 路由器的等等
  • 后面还会让你输入 passphrase 个人建议是没必要设置这个密码了,如果你的环境中对安全性要求很高那还是建议设置一下。因为我的安全性要求不高,设置这种方式登录就是为了规避输入密码的问题,所以不设置了。
  • 我也尝试过设置 passphrase 后面 ssh 登录服务器时 还需要输入一遍这个密码,还是很麻烦。如果设置了这个密码不想删掉重新设置又想不输入密码登录 可以看看下面两篇文章 删除SSH私钥密码(passphrase)
ssh-keygen -t rsa

比如我输入的文件名是 /Users/huadekai/.ssh/softRouter_id_rsa

那么生成的对应的公钥是 /Users/huadekai/.ssh/softRouter_id_rsa.pub,将这个文件的文本内容拷贝到 /etc/dropbear/authorized_keys(如果没有这个文件则需要新建,建议文件权限:644)

也可以通过 openwrt luci 页面设置公钥,如下图

20210424111029.png

设置好之后需要配置一下客户端。

编辑配置文件 /Users/huadekai/.ssh/config 如果没有这个文件则新建,追加以下内容,其中

  • Host 是 ssh 的时候的别名
  • Hostname 是真正的服务端主机,要么域名要么 IP,均可以
  • IdentityFile 写成你自己的绝对路径
  • User 是使用哪个用户登录,必须是 openwrt 系统中已经存在的且具有 shell 解释器的(就是 /etc/passwd 中有被赋予 shell,是能够登录的用户名)
  • Port 指定 ssh 服务端监听的端口
Host myrouter
    Hostname 10.10.10.1
    IdentityFile /Users/huadekai/.ssh/softRouter_id_rsa
    User root
    Port 1003

保存退出

下面尝试使用 ssh myrouter 登录吧~

huadekai@huadekaideMBP .ssh % ssh myrouter
  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r2406-f8bd6e0 , Mask Ver.D200401
 -----------------------------------------------------
root@dkRouter:~#

尝试使用 ssh t400 免密码登录我的 ubuntu 机器

huadekai@huadekaideMBP .ssh % ssh t400
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.15.0-58-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

1248 packages can be updated.
202 updates are security updates.

Last login: Sat Apr 24 11:25:54 2021 from 10.10.10.168

dk at dk-tpt400 in ~
$

good! 不需要输入密码直接登录系统

本文的分享结束,end.