chsh 后 ssh 无法连接怎么救

DevOps Feb 1, 2022

tl, dr:

https://www.vultr.com/docs/using-finnix-rescue-cd-to-rescue-repair-or-backup-your-linux-system/

macOS Terminal 的提示

01

不知出于什么原因,没有用常用的 Hyper,而是文艺复兴般打开了系统自带的 Terminal,用 SSH 登入了服务器。

登入后才发现上面的一排字眼,建议我设置默认的 shell。

还以为是自己没有换 shell 的原因(其实早就换成 zsh 了)导致系统出现这行提示,我便复制粘贴了上面那句话,按下了回车,但已然忘记我还保持着和那台 Ubuntu 服务器的连接。

眼睛一扫而过,看到了 not found 三个字,好像隐约有点不对劲。但我却福至心灵的,熟练的让人心疼,又输入了 exit,按下了回车。

又在本地重新输入了那句 chsh -s /bin/zsh 。返回 no changes made

深感大事不妙。

再次尝试 ssh 到服务器,但却提示输入密码。

奇怪,我不是已经设置好用密钥登录吗?

密码错误?

完蛋,登入不进去了。

02

用万能的谷歌查询了一下,原来是我指定了一个不存在的 shell,于是导致验证失败(其实已经猜到了),需要用 livecd 解决。

遂开了张 ticket,热心的客服也很快告诉我如何挂载 livecd。

这题不难,我会

03

熟练的打开服务商提供的 noVNC,黑屏

刷新,灰屏

输入,没反应

刷新,嘿(一声),有反应了

输入,没反应

刷新,嘿(一声),有反应了

合着是练习我盲打水平对吧(只看键盘不看屏幕那种)

04

挂载 volume

mount /dev/vda1 /mnt

改 /etc/passwd

在没有任何反馈的情况下

shift + $ , hhhh, i , del, del, del, bash, esc, :wq

谁能感受我绝望

好在是终于改完了

05

终于改完了吗?

没效果啊

难道我要再走一遍流程?

日,我改的是 livecd 里面的 passwd。

06

cd 到 /mnt

vi etc/passwd

shift + $ , hhhh, i , del, del, del, bash, esc, :wq

重启,退光盘

问题终于解决了

07

回复工单,顺便吐槽一下他们的 noVNC……

Tags