原因
虽然树莓派自家的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 # 修改或添加以下选项 UsePAM no PermitRootLogin yes PermitEmptyPasswords yes
-
修改PAM配置
修改ssh配置为允许空密码登录后,你会发现Debian10还是无法空密码登录,所以需要修改PAM的配置。
这一步可以省去,因为前边已经关闭了PAM,ssh配置选项:"UsePAM no"。# 编辑配置 $ sudo vi mnt/etc/pam.d/common-auth # 修改配置,把 nullok_secure 改为 nullok auth [success=1 default=ignore] pam_unix.so nullok
修改完成后,卸载镜像文件并烧录进内存卡,就可以ssh空密码登录root账户了。