楔子
这两天入了一个Scaleway巴黎的1C1G3G IPv6-only小小鸡,开机的时候只能选10G盘,对于什么都干不了的玩具鸡有点贵,就按ns大佬的帖子改成了3G盘,但在dd完开机后,可以连接上但是用sshkey却无法登录。ns和隔壁搜了下,说是要删除重建。这他哥的怎么能行,有问题必须解决。
想起来dd的时候是通过救援系统操作的,既然是救援系统是不是像winpe一样能操作系统文件,把公钥放进去,有想法就试试吧。
极限救援
进入救援模式
关机-->进入
advanced-settings
-->选择Use rescue image(救援系统)
--> 保存-->开机
挂载系统盘
- 使用
lsblk
命令显示所有块设备信息
lsblk
指令主要用于展示块设备(block devices)的信息,包括磁盘、分区和挂载点等。
root@scw-1c1g:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 63.4M 1 loop /snap/core20/1974
loop1 7:1 0 111.9M 1 loop /snap/lxd/24322
loop2 7:2 0 53.3M 1 loop /snap/snapd/19457
sda 8:0 0 9.3G 1 disk
├─sda1 8:1 0 3.1G 1 part /media/root-ro
├─sda14 8:14 0 4M 1 part
└─sda15 8:15 0 106M 1 part /boot/efi
vda 252:0 0 2.8G 0 disk
├─vda1 252:1 0 2.7G 0 part #这个就是我们的系统分区
├─vda14 252:14 0 3M 0 part
└─vda15 252:15 0 124M 0 part
- 挂载系统分区到本地(救援系统)
root@scw-1c1g:~# mkdir /mnt/vda1
root@scw-1c1g:~# mount /dev/vda1 /mnt/vda1
root@scw-1c1g:~# cd /mnt/vda1
root@scw-1c1g:/mnt/vda1# ls # 如果输出如下内容就是挂载成功了
bin dev home lib32 libx32 media opt root sbin sys usr
boot etc lib lib64 lost+found mnt proc run srv tmp var
写入sshkey
- 进入系统分区里的个人目录
root@scw-1c1g:/mnt/vda1# cd home/debian
root@scw-1c1g:/mnt/vda1/home/debian# ls -al
total 24
drwxr-xr-x 3 ubuntu ubuntu 4096 Nov 17 06:21 .
drwxr-xr-x 3 root root 4096 Nov 17 06:21 ..
-rw-r--r-- 1 ubuntu ubuntu 220 Apr 23 2023 .bash_logout
-rw-r--r-- 1 ubuntu ubuntu 3526 Apr 23 2023 .bashrc
-rw-r--r-- 1 ubuntu ubuntu 807 Apr 23 2023 .profile
drwx------ 2 ubuntu ubuntu 4096 Nov 17 07:44 .ssh # 这就是存放authorized_keys的位置
- 看一下
authorized_keys
存不存在,并且看下里边的内容
root@scw-1c1g:/mnt/vda1/home/debian# cd .ssh
root@scw-1c1g:/mnt/vda1/home/debian/.ssh# ls
authorized_keys # 输出这个说明是存在的
root@scw-1c1g:/mnt/vda1/home/debian/.ssh# cat authorized_keys
# 什么都没有输出,说明这文件是空的
- 把我们的
sshkey
写进authorized_keys
文件,并保存
这里我用的
vim
编辑器,你可以用你喜欢的任何方法把sshkey
写入到这个文件
root@scw-1c1g:/mnt/vda1/home/debian/.ssh# vim authorized_keys
卸载分区
- 卸载挂载的分区
root@scw-1c1g:/mnt/vda1/home/debian/.ssh# cd ~
root@scw-1c1g:~# umount /mnt/vda1
umount: /mnt/vda1: target is busy.
额,这是啥?我忙了半天,它怎么比我还忙!
- 解决
target is busy
的占用问题
用lsof
命令看一下是谁在占用它
root@scw-1c1g:~# lsof /mnt/vda1
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 1619 root cwd DIR 252,1 4096 25936 /mnt/vda1/home/debian/.ssh
是这个进程ID为1619的家伙占用的,既然找到它了就kill
掉吧
root@scw-1c1g:~# kill 1619
root@scw-1c1g:~# umount /mnt/vda1
umount: /mnt/vda1: target is busy.
他哥的,它还在忙...
那就莫怪我狠心了,强制kill
掉
root@scw-1c1g:~# kill -9 1619
root@scw-1c1g:~# umount /mnt/vda1
总算卸载掉了
结尾
关机并重新进入系统
关机-->切换回
Use local boot
,并将Boot volume
选择为大小为3G的卷-->开机
不错 终于看见一篇稍微有技术含量的文章了
@dabao #0 我也去折腾一下
@markfeng #1 这个以前有人出过
@xbbazt #3 没你写的好 我也去折腾一下 弄好了发帖
@xbbazt #3 我怎么没找到,进不去系统,浪费了一天的o币
@markfeng #1
我猜你在找这个链接
@xbbazt #7 就是看这个帖子改小的,然后出现了开机没有sshkey的问题
@dabao #8 我记得可以呀我还按着教程弄过
星尘还能改1g那个我没玩过
DD完是debian+key登陆