本文包括树莓派烧录系统镜像,ssh 免密登录,frp 内网穿透,设置多个密码,移除 ssh 日志等操作。注意不需要网线、键鼠、显示器等。

# 准备工具

  • 树莓派电路板
  • 8GB 以上的 SD 卡
  • 读卡器
  • USB 转换器(可选)
Image

# 烧录系统至 SD 卡

  • 下载格式化 SD 卡工具:在此链接中下载格式化 SD 卡的工具,安装工具

  • 下载镜像:在此位置下载并解压,我选择的是 2023-05-03-raspios-buster-armhf-lite.img.xz

  • 下载镜像烧录工具:在此位置下载,安装工具

  • 下载的工具截图如下图所示。

Image

将 SD 卡插入到读卡器,读卡器通过 USB 转换器连接至电脑。运行 SDCardFormatterv5_Mac,先对 SD 卡进行格式化。

Image Image

格式化成功之后,打开烧录系统的 imager 工具。

Image

选择操作系统为刚刚下载好的 img.xz 解压后的 img,选择储存卡为 SD 卡。

Image

在设置中修改主机名,开启 SSH 服务,wifi 密码,用户名密码,时区等。

Image

设置成功后烧录镜像,烧录之后会自动验证。

Image

提示安装成功之后,就可以将 SD 卡拔出,插入到树莓派电路板中了。

Image

# ssh 连接至树莓派

树莓派插上电源,绿灯闪烁时表示系统正常写入。等待写入成功后,搜查树莓派 ip 地址。

可以通过路由器后台查看当前的联网设备有哪些,找到树莓派的 ip。

Image

或者通过烧录镜像时设置的域名直接进行连接。

Image

# 本地化信息修改

默认登录后会出现 -bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) 的问题

先将 apt-get 的源更新到最新
sudo apt-get update
sudo apt-get upgrade

Image

使用以下命令更新本地化
sudo apt-get install locales
sudo dpkg-reconfigure locales

Image

如果更新本地化信息没有解决问题,可以尝试手动设置本地化。使用以下命令:
sudo nano /etc/locale.gen

Image

在打开的文件中,将需要的本地化信息(例如 en_US.UTF-8 UTF-8)取消注释,然后保存文件并退出。

接下来,运行以下命令以使更改生效:这将设置所需的本地化并解决警告信息。
sudo locale-gen
sudo update-locale LANG=en_US.UTF-8

Image

再次 ssh 进入树莓派,则不会收到 locale 告警信息了。

Image

# 设置多个 wifi 密码

假如我们换了一个新的 wifi 环境,如果没有配置多个 wifi 密码的能力,我们只能重置 os 重新烧录。可以通过相关的命令多设置一个 wifi 为我们的流量密码。

需要指定设备的使用国。
sudo raspi-config

从菜单中选择本地化选项项目.

Image

然后更改无线国家选项。

Image

选择 " 更改无线国家 / 地区选项。

Image Image

按 ESC 返回到命令行。

接下来就是生成 psk

1
2
3
# 生成 psk
wpa_passphrase "413" "shipeidong123"
wpa_passphrase "n1h1l157" "chentuo0"
Image

将生成的以 ASCII 码显示的 psk 复制下来,修改 wifi 信息,保存退出。

1
2
# 修改默认的网络配置及优先级
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Image

重启树莓派(reboot 或者电源重启)后,优先级较高的 wifi 将会自动连接,可以通过将手机热点打开,让电脑和树莓派在同一局域网内登录。

Image

当关闭热点后,树莓派又会重新连接到 wifi 上。

Image

# 移除登录的日志

1
2
3
4
# ssh登录消息配置
sudo nano /etc/ssh/sshd_config
PrintLastLog yes
Banner none
Image
1
2
3
4
5
# 重启ssh
sudo service sshd restart

# motd 信息
sudo rm /etc/motd
Image

# ssh 免密登录树莓派

  • 服务端设置
1
2
3
4
5
6
7
8
9
# 生成 ssh 密钥对
ssh-keygen -t rsa

# 修改 ssh 配置文件
sudo nano /etc/ssh/sshd_config
PermitRootLogin yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
PermitEmptyPasswords no
Image
1
2
3
4
5
6
# 重启 ssh 并将公钥导入 
service sshd restart
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

# 检验服务端是否免密成功
ssh localhost -i ~/.ssh/id_rsa
Image
  • 客户端设置
1
2
3
4
5
6
7
8
9
10
# 获取私钥文件
scp chentuo@raspios.local:/home/chentuo/.ssh/id_rsa ~/.ssh/n1h1l157/pi

# 修改 ssh 别名
sudo vim ~/.ssh/config
Host raspios.local
Hostname 192.168.31.47
User chentuo
Port 22
IdentityFile ~/.ssh/n1h1l157/pi
Image
1
2
# 免密登录
ssh raspios.local
Image

# frp 内网穿透

服务端设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 下载 frp
wget https://github.com/fatedier/frp/releases/download/v0.51.2/frp_0.51.2_linux_amd64.tar.gz
tar -zxvf frp_0.51.2_linux_amd64.tar.gz

# 配置文件
[common]
bind_addr = 0.0.0.0
bind_port = 2223
token = n1h1l157

# 启动
nohup ./frps -c ./frps.ini &

# 检验
ps -ef | grep frp
Image

客户端设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 下载 frp
wget https://github.com/fatedier/frp/releases/download/v0.51.2/frp_0.51.2_linux_arm.tar.gz
tar -zxvf frp_0.51.2_linux_arm.tar.gz

# 配置文件
[common]
server_addr = 47.102.120.55
server_port = 2223
token = n1h1l157

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2224

# 启动
nohup ./frpc -c ./frpc.ini &
Image

本地远程连接树莓派
ssh -p 2224 chentuo@47.102.102.55 -i ~/.ssh/n1h1l157/pi

就到这里

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

.N1h1l157 微信支付

微信支付

.N1h1l157 支付宝

支付宝

.N1h1l157 贝宝

贝宝