一定不要在没有更改默认 Shell 的情况下删掉对应的 Shell

2020-03-10 04:59:17 +08:00
 noqwerty

昨天上午想着从 fish shell 换回 zsh,一顿配置之后删掉了 fish shell 然后心满意足地连点两次 Ctrl+d,然后就发现 SSH 连不上去了……

很久以前为了安全性禁止了 root 登录,平时都用这个 sudo 账号操作,结果默认 Shell 没了什么命令都不好使,SSH Key 也不认了,密码登录也不行,StackOverflow 上的方法试了一圈都没效果,最后只能重开了一台机器然后花了一下午时间把各种服务都恢复上(万幸都在 GitHub 或者 Onedrive 上有备份)。

记录一下自己的手贱经历,希望能给大家一个提醒吧。

3269 次点击
所在节点    程序员
26 条回复
CEBBCAT
2020-03-10 07:26:11 +08:00
嘻嘻嘻,类似的事儿我也干过,我那时候是 chsh 的时候只写了 zsh 的名字,没有写绝对路径
user20190708
2020-03-10 07:31:26 +08:00
如果使用的 XX 云&&禁止 root 远程登录,可以尝试在 XX 云的控制台 vnc 登录。
YaakovZiv
2020-03-10 07:35:11 +08:00
有些平台的云主机,是有一个图形界面的,那个界面不受 SSH 这个影响。就类似于某些服务器的 BMC 界面那种
ynyounuo
2020-03-10 08:00:25 +08:00
用其他方式在 PATH 里放一个编译好的
d0m2o08
2020-03-10 08:12:26 +08:00
刚参加工作的时候电信机房托管的机器,配置 iptables 把自己屏蔽了😂
noqwerty
2020-03-10 08:17:16 +08:00
@CEBBCAT #1 差不多效果


@user20190708 #2
@YaakovZiv #3
试过了,root 密码也不是默认的,忘了什么时候改过了


@ynyounuo #4 还有什么方式吗,我能想到的方式都需要登录进去


@d0m2o08 #5 哈哈哈我也差点干过这个,最后一秒理智战胜了脑抽
lithiumii
2020-03-10 08:34:51 +08:00
我搞过的骚操作是 ssh 配置写错了,没有先试试就直接重启……
no1xsyzy
2020-03-10 09:02:23 +08:00
没 shell 应该还可以做端口转发(应该可以)和 scp (不太确定)的吧
no1xsyzy
2020-03-10 09:06:50 +08:00
@noqwerty 没 shell 只是不能进命令行界面,ssh 链接还是能建立的吧,只要不请求 shell 应该不致链接中断
虽然全都是我这边拍脑袋(
idealhs
2020-03-10 09:07:00 +08:00
VNC 啊老哥,就像去机房自己操作一样
passerbytiny
2020-03-10 09:20:45 +08:00
@noqwerty #5 root 账号你可以不用,但要留着呀。起始你这种完全不用 root 的 sudo,跟直接用 root,只有脱裤子放屁的区别,因为你那个 sudo 的账号拥有全部权限。
Pyjamas
2020-03-10 09:26:37 +08:00
ssh 的一瞬间疯狂按 ctrl+c,可以在.bashrc (或者.zshrc 之类的)被加载之前让它停下来,然后你就可以进到 sh 了
嗯,我记得两年前我用这个方法试了大概 20 分钟,终于 work 了,当然前提是你的网络要好...
Mohanson
2020-03-10 09:30:38 +08:00
ssh 有个参数 -c, /bin/bash 填上很 ok
mostkia
2020-03-10 09:43:52 +08:00
webssh 挺香的,99%的 ssh 爆破都针对 22 端口,最低成本的就是改端口,虽然用着不舒服,脱离了 22 端口的 ssh 都行。网页上进行操作就挺好的,不放心还可以用后台做权鉴加固。以前一直被爆破,每天都有上万次的登录记录,换了 webssh,控制面板关闭 22 端口后,世界清净了。。
noqwerty
2020-03-10 09:46:25 +08:00
@no1xsyzy #9
@Pyjamas #12
你们说这个让我想起来好像是有这个操作。。唉昨天没想起来啊,浪费一下午,就当清系统垃圾了
noqwerty
2020-03-10 09:47:55 +08:00
@passerbytiny #11 是啊,这次开新机器第一件事就是把 root 密码换成了自己的常用密码。平时不用 root 主要还是考虑到一些脚本的安全性问题,不加 sudo 跑不起来起码心理上感觉安全一些
noqwerty
2020-03-10 09:48:21 +08:00
@Mohanson #13 这个试了,显示要输密码,输了之后说 permission denied
noqwerty
2020-03-10 09:49:09 +08:00
@mostkia #14 端口我是每次都改成别的了,然后在 ~/.ssh/config 加一行端口,还是很方便的
Vegetable
2020-03-10 09:51:59 +08:00
ssh root@ip "/bin/bash"就通过 bash 连接到服务器上了,只是和平时看起来不太一样,通过这个修改一下默认 shell 重新登录一切都解决了。
no1xsyzy
2020-03-10 09:52:22 +08:00
@noqwerty #16 安慰剂
而且还是氢型安慰剂(即是指只有心理上的安慰,但这一安慰感本身是有害的,会让你 “飘飘然”)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/651386

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX