原因
虽然树莓派自家的Raspberry Pi OS也是Debian10,但是作为有些强迫症的程序员,我还是选择安装官方发布的Debian10。
其实安装很简单,直接写入内存卡就行了,但是不能ssh连接,所以这里主要是解决这个问题。
下载
访问官方网站,下载最新的镜像文件。
# 官网下载页面
https://raspi.debian.net/tested-images/
# 我下载的镜像文件
https://raspi.debian.net/verified/20201112_raspi_4.img.xz
修改镜像
首先必须有一个linux环境,虚拟机或者WSL都可以,或者其他镜像文件修改的软件也可以,我使用的是WSL2 Ubuntu。
注意,WSL1是不支持的挂载镜像文件的,必须WSL2!如果你的WIN10不能安装WSL2,别折腾了,赶紧用虚拟机吧。
- 解压文件
把下载的镜像文件传到虚拟机或者WSL2,然后解压:
xz -d 20201112_raspi_4.img.xz
- 查看镜像分区
解压后,会得到.img文件,我们用fdisk
查看分区:
fdisk -l 20201112_raspi_4.img
输出:
Disk 20201112_raspi_4.img: 1.48 GiB, 1572864000 bytes, 3072000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8ed03b0d
Device Boot Start End Sectors Size Id Type
20201112_raspi_4.img1 2048 614399 612352 299M c W95 FAT32 (LBA)
20201112_raspi_4.img2 614400 3071999 2457600 1.2G 83 Linux
可以看到这个镜像有两个分区,我们要挂载第二个分区。请记下Start数字,下边命令会用到。
- 挂载镜像文件
# 创建一个挂载目录
mkdir mnt
# 挂载镜像,注意修改 614400 为上边的Start数字
sudo mount -o loop,offset=$((614400 * 512)) -w 20201112_raspi_4.img mnt
- 修改ssh配置
Debian10默认帐号是root,密码为空,然而ssh默认配置是不允许空密码登录的,所以我们需要修改配置。
# 编辑配置文件
sudo vi mnt/etc/ssh/sshd_config
# 修改以下选项
PermitRootLogin yes
PermitEmptyPasswords yes
- 修改PAM配置
修改ssh配置为允许空密码登录后,你会发现Debian10还是无法空密码登录,所以需要修改PAM的配置。
# 编辑配置
sudo vi mnt/etc/pam.d/common-auth
# 修改配置,把 nullok_secure 改为 nullok
auth [success=1 default=ignore] pam_unix.so nullok
- 修改完成后,卸载镜像文件并烧录进内存卡,就可以ssh空密码登录root账户了。