先用chatgpt 做攻略,告诉他要用脚本https://github.com/bin456789/reinstall dd系统 安装debian13,让他做一份详细教程,教程中的备份引导卷这一步骤我没有做,重装前的检查工作也没做,因为原来arm ubuntu系统没有问题,当然准备工作最重要的是私钥公钥你都要有,然后,就是先ssh原系统 passwd 命令,得到root 密码,然后,在实例 操作系统管理 控制台连接 用root 登录,就放在那里,等ssh dd时,被断开,可以在控制台页面看到整个dd系统安装过程,心理有底,不会焦虑。
总之,按照ai的这份攻略,中间没有踩坑,dd系统 大概过程6分钟搞定
已将教程中的 Windows 用户名统一改为 admin,并保留 Linux 管理员账号 admin 的设置。论坛发布时,读者仍需把 C:\Users\admin 改成自己的 Windows 用户目录。
Oracle ARM VPS 使用 reinstall 脚本安装 Debian 13 教程
一、本次环境和结果
- 云平台:Oracle Cloud Infrastructure
- 实例架构:ARM64 / AArch64
- 实例类型:
VM.Standard.A1.Flex - 原系统:Ubuntu 24.04
- 新系统:Debian 13 ARM64
- SSH 用户:
root - SSH 端口:
22 - 安装方式:
reinstall.sh debian 13 - 结果:安装成功,SSH 密钥登录正常
本文中的 Windows 用户名统一使用:
admin
实际使用时,请将:
C:\Users\admin
替换成自己的 Windows 用户目录。
成功登录后的典型信息:
Linux localhost 6.12.94+deb13-arm64
aarch64
root@localhost
这说明 Debian 13 ARM64 已经安装成功。
二、重要结论:不要把 Debian 安装误当成 RAW DD
本脚本有两种相关用法。
推荐方式:安装指定 Linux 系统
bash /root/reinstall.sh debian 13
适合本次任务,脚本会自动处理:
- Debian 13 ARM64 安装
- EFI/GRUB 引导
- 磁盘分区
- 网络配置
- SSH 服务
- SSH 公钥
- root 或普通用户配置
RAW DD 方式
bash /root/reinstall.sh dd --img "https://example.com/arm64.raw.xz"
这种方式要求:
- 必须是 ARM64/AArch64 镜像
- 必须是 RAW 或固定大小 VHD 镜像
- 不能直接使用 Debian ISO
- Linux RAW 镜像不会自动修改网络和 SSH
- 需要自行处理 cloud-init、网络和登录密钥
- 当前脚本 README 已将 DD RAW 功能标记为弃用
因此,安装 Debian 13 时,优先使用:
bash /root/reinstall.sh debian 13
三、重装前检查
1. 备份 OCI 引导卷
重装脚本会清除整个系统硬盘,包括其他分区。
在 OCI 控制台创建引导卷备份:
Storage
→ Block Storage
→ Boot Volumes
→ 找到对应引导卷
→ Create Backup
同时检查:
/home是否有重要数据- Docker 数据是否在系统盘
- 网站配置和数据库是否需要备份
- SSL 证书是否需要保存
- 是否有单独的 Block Volume
- 是否有其他分区挂载在系统盘上
2. 确认实例架构
原 Ubuntu 中执行:
uname -m
ARM 实例应显示:
aarch64
也可以在 OCI 控制台检查 Shape:
Compute
→ Instances
→ 选择实例
→ Shape
常见 ARM 型号:
VM.Standard.A1.Flex
VM.Standard.A2.Flex
VM.Standard.A4.Flex
3. 确认公网和路由
OCI 控制台确认:
实例详情
→ Primary VNIC
→ Public IPv4 Address
子网路由表中应有:
0.0.0.0/0 → Internet Gateway
安全规则中应允许:
TCP 22
规则可能位于:
Security List
或者:
Network Security Group
4. 准备串行控制台
重装前建议创建:
Compute
→ Instances
→ 你的实例
→ Console connections
→ Create local connection
如果重装后 SSH 暂时无法连接,可以通过串行控制台检查启动和安装过程。
四、Windows 11 准备 SSH 私钥
本次私钥路径示例:
C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key
查看对应公钥:
Get-Content -LiteralPath "C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key.pub"
如果没有 .pub 文件,可以从私钥生成:
ssh-keygen -y -f "C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key" | Set-Content -NoNewline -Encoding ascii "C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key.pub"
注意:
--ssh-key需要填写公钥。- 不能填写私钥。
- 公钥通常以
ssh-rsa或ssh-ed25519开头。 - 公钥需要完整复制成一行。
五、修复 Windows 私钥权限
如果 SSH 出现:
WARNING: UNPROTECTED PRIVATE KEY FILE
bad permissions
This private key will be ignored
说明 Windows 私钥文件对其他用户组开放,OpenSSH 会拒绝使用。
PowerShell 修复方法
$keyPath = "C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key"
$currentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
icacls.exe $keyPath /inheritance:r
icacls.exe $keyPath /grant:r "${currentUser}:(R)"
icacls.exe $keyPath
最后一条命令中,应主要看到当前 Windows 用户拥有读取权限。
图形界面修复方法
- 右键
.key文件 - 选择“属性”
- 进入“安全”
- 点击“高级”
- 点击“禁用继承”
- 选择:
从此对象中删除所有已继承的权限
- 回到权限列表,点击“添加”
- 添加当前 Windows 用户:
admin
- 只保留“读取”权限
- 应用并确定
不要保留:
Everyone
Users
CodexSandboxUsers
等普通用户组的访问权限。
六、登录原 Ubuntu
在 Windows PowerShell 中:
$ociIp = "你的公网IPv4"
$ociKey = "C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key"
ssh -i $ociKey "ubuntu@$ociIp"
Oracle Ubuntu 默认用户名通常是:
ubuntu
登录后检查:
uname -m
cat /etc/os-release
free -h
df -h /
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
ip -br addr
ip route
切换 root:
sudo -i
七、下载 reinstall 脚本
安装下载工具:
apt-get update
apt-get install -y curl ca-certificates
下载 GitHub 当前版本:
curl -fL --retry 3 --connect-timeout 15 -o /root/reinstall.sh https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || curl -fL --retry 3 --connect-timeout 15 -o /root/reinstall.sh https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh
如果 GitHub 下载失败,会自动尝试 CNB 镜像。
设置权限:
chmod 700 /root/reinstall.sh
查看脚本开头:
sed -n '1,100p' /root/reinstall.sh
八、正式安装 Debian 13
把下面命令中的公钥替换为自己的完整公钥:
bash /root/reinstall.sh debian 13 \
--username root \
--ssh-key "ssh-rsa AAAAB3NzaC1yc2EAAAA...你的完整公钥..."
本次实际配置的要点:
目标系统:Debian 13
用户:root
公钥登录:启用
SSH 端口:22
使用 SSH 公钥时,不要同时添加:
--password
如果没有 SSH 公钥,才使用临时密码:
bash /root/reinstall.sh debian 13 \
--username root \
--password "一个复杂的临时密码"
密码方式安全性较低,而且密码可能出现在命令历史中。
九、看到这个提示后才重启
脚本准备完成后,会显示类似:
Warning: Reinstalling will erase all data on the main disk.
Reboot to start the reinstallation.
Or run "sh reinstall.sh reset" now to cancel the reinstallation.
这时表示:
- 重装配置已经准备好
- 还没有真正开始清空系统盘
- 需要手动重启才能开始安装
确认备份和 SSH 公钥无误后,执行:
reboot
不要执行:
sh reinstall.sh reset
后者是取消重装。
重启后当前 SSH 会断开,这是正常现象。
十、重装期间查看进度
重启后等待几分钟,再测试端口:
Test-NetConnection $ociIp -Port 22
如果端口恢复,可以尝试连接安装环境:
ssh -i $ociKey "root@$ociIp"
进入安装环境后可以查看日志:
tail -fn+1 /var/log/syslog
也可以尝试进入安装器界面:
TERM=screen screen -x root/ -p 1
如果 SSH 无法连接,使用 OCI 串行控制台。
重装期间不要:
- 连续强制重启
- 重复执行重装命令
- 关闭 OCI 控制台
- 误以为短时间无法 SSH 就是失败
十一、首次登录新 Debian
由于新系统会生成新的 SSH 主机密钥,可能出现:
REMOTE HOST IDENTIFICATION HAS CHANGED
这通常是正常的。
在 Windows PowerShell 执行:
ssh-keygen -R $ociIp
然后连接新系统:
ssh -i $ociKey "root@$ociIp"
检查系统:
cat /etc/os-release
uname -m
hostnamectl
free -h
df -h /
ip -br addr
ip route
getent hosts deb.debian.org
systemctl --no-pager status ssh
正常结果应包括:
Debian GNU/Linux 13
aarch64
SSH active/running
网络和默认路由正常
十二、安装系统更新
脚本为了快速安装,不会自动完成全部系统更新。
登录 Debian 后执行:
apt-get update
apt-get full-upgrade -y
apt-get install -y sudo curl ca-certificates openssh-server
timedatectl set-timezone Asia/Shanghai
systemctl enable --now ssh
检查失败服务:
systemctl --failed
十三、创建普通管理员账号
长期使用 root 不推荐。
创建普通用户:
adduser --disabled-password --gecos "" admin
usermod -aG sudo admin
复制 root 的 SSH 公钥:
install -d -m 700 -o admin -g admin /home/admin/.ssh
cp /root/.ssh/authorized_keys /home/admin/.ssh/authorized_keys
chown admin:admin /home/admin/.ssh/authorized_keys
chmod 600 /home/admin/.ssh/authorized_keys
在 Windows PowerShell 新开窗口测试:
ssh -i $ociKey "admin@$ociIp"
测试 sudo:
sudo -n true
sudo id
看到以下内容说明成功:
uid=0(root)
十四、关闭 root SSH 登录
必须先确认 admin 可以正常登录和执行 sudo。
然后回到 root 窗口执行:
cat >/etc/ssh/sshd_config.d/99-local-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
EOF
检查配置:
sshd -t
没有报错后:
systemctl restart ssh
以后使用:
ssh -i $ociKey "admin@$ociIp"
十五、OCI 子网安全规则是否受影响
DD 或重装系统不会删除 OCI 的云端安全规则。
以下内容仍然存在:
- Security List
- Network Security Group
- Route Table
- Internet Gateway
- VNIC
- 公网 IP
因为这些配置属于 OCI 云平台,不在系统硬盘中。
但系统内部防火墙属于操作系统,重装后可能发生变化:
ufw status
nft list ruleset
ss -lntp
开放端口时必须同时检查两层:
OCI Security List/NSG
+
Debian 系统防火墙
例如开放 TCP 80:
- OCI 放行 TCP 80
- Debian 防火墙放行 TCP 80
- Web 服务监听 TCP 80
十六、以后再次重装时的最简流程
重装 Debian 13
sudo -i
apt-get update
apt-get install -y curl ca-certificates
curl -fL --retry 3 -o /root/reinstall.sh https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || curl -fL --retry 3 -o /root/reinstall.sh https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh
chmod 700 /root/reinstall.sh
bash /root/reinstall.sh debian 13 --username root --ssh-key "你的完整SSH公钥"
reboot
重装后连接
ssh-keygen -R $ociIp
ssh -i $ociKey "root@$ociIp"
如果误操作但尚未重启
bash /root/reinstall.sh reset
十七、常见错误速查
SSH 提示私钥权限过宽
错误:
UNPROTECTED PRIVATE KEY FILE
bad permissions
解决:
$keyPath = "C:\Users\admin\Desktop\oracle2\ssh-key-2026-08-28.key"
$currentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
icacls.exe $keyPath /inheritance:r
icacls.exe $keyPath /grant:r "${currentUser}:(R)"
SSH 提示主机密钥变化
ssh-keygen -R $ociIp
Permission denied (publickey)
检查:
- 用户名是否正确
- 私钥是否匹配公钥
- 公钥是否复制完整
- 是否误用
ubuntu登录新 Debian - 私钥是否仍被 Windows 忽略
新 Debian 本教程第一次登录使用:
ssh -i $ociKey "root@$ociIp"
Connection timed out during banner exchange
重点检查:
- OCI 公网 IP
- 子网路由表
- Internet Gateway
- Security List
- NSG
- TCP 22
- 串行控制台
这通常不是密码错误,而是 SSH 还没有完成握手。
重装后无法启动
Oracle A1.Flex 在该脚本说明中属于成功率不确定的平台。
处理顺序:
- 使用串行控制台查看错误
- 不要连续强制重启
- 等待几分钟确认是否只是启动较慢
- 使用引导卷备份恢复
- 必要时新建实例测试
十八、最终经验
- 重装前一定创建 OCI 引导卷备份。
- Debian 13 使用
debian 13安装入口,不要优先使用 RAW DD。 - SSH 私钥必须设置为当前 Windows 用户独占读取。
--ssh-key填公钥,不能填私钥。- 脚本显示
Reboot to start the reinstallation后,才执行reboot。 - 重装后出现 SSH 主机密钥变化通常是正常现象。
- OCI 子网安全规则不会因 DD 重装而消失。
- 第一次登录成功后,再创建普通用户并关闭 root SSH。
- 修改 SSH 端口时,必须同时修改 OCI 和 Debian 两侧规则。
- Oracle ARM A1.Flex 重装前必须准备串行控制台和备份。
官方资料
教程整理日期:2026-08-29
你这文章很奇怪啊,源系统是ubuntu,为什么又是windows的用户啥的?而且直接用https://github.com/bin456789/reinstall dd不就行了大概懂你意思了,不过全是垃圾话。
学习学习@cmxhello #0
@mzm #1 我在win11 电脑上远程ssh登录 oracle vps
学习了,用控制台看着dd过程确实心里踏实,下次我也试试这个脚本装debian。
@cmxhello #3 很多操作都是没有必要的,直接登录ubuntu系统先切root再直接dd就行。哪里有你这个写的那么麻烦
@mzm #5 我是新手,ai告诉我这样做,我就这样做了
6,这也行。都是上去就DD的,你这一套又一套啊。厉害。
好教程,谢谢分享
请问为什么要换debian,