You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

AWS上Ubuntu 20.04实例无法使用ubuntu用户SSH登录,出现黑屏且无法执行命令求助

AWS上Ubuntu 20.04实例无法使用ubuntu用户SSH登录,出现黑屏且无法执行命令求助

嗨,看起来你遇到的问题挺典型的——改了npm相关配置后ubuntu用户突然登不上SSH,但jenkins和root用户却正常,咱们一步步排查解决哈!

最可能的原因:shell初始化文件被破坏

npm操作经常会修改用户的~/.bashrc~/.profile这类shell启动配置文件,要是配置写错了(比如语法错误、无效的环境变量),就会导致登录时shell加载卡住,出现黑屏/无法执行命令的情况。

步骤1:检查并修复ubuntu用户的shell配置文件

  • 先用jenkins用户登录,切换到root:sudo su -
  • 进入ubuntu用户的家目录:cd /home/ubuntu
  • 查看.bashrc文件,重点看最近添加的npm相关配置:cat .bashrc
    • 比如有没有写错的export PATH语句,或者多余的符号、未闭合的引号
  • 同样检查.profile.bash_profile这几个文件:cat .profile
  • 发现可疑的错误行后,先注释掉(在行首加#),然后保存文件

步骤2:确认ubuntu用户的默认shell是否正常

有时候错误的配置可能会把用户的默认shell改掉,执行下面的命令检查:

cat /etc/passwd | grep ubuntu

正常情况下输出应该类似:ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
如果最后一段不是/bin/bash/bin/sh,用下面的命令改回来:

usermod -s /bin/bash ubuntu

步骤3:检查家目录及配置文件的权限

权限异常也会导致SSH登录失败,比如权限太开放或者所有者不对:

  • 检查家目录权限:ls -ld /home/ubuntu,正常应该是drwxr-xr-x(权限755)
  • 检查配置文件权限:ls -l /home/ubuntu/.bashrc,正常应该是-rw-r--r--(权限644)
  • 如果权限不对,执行以下命令修复:
chmod 755 /home/ubuntu
chmod 644 /home/ubuntu/.bashrc /home/ubuntu/.profile

步骤4:测试修复效果

改完之后,尝试用ubuntu用户重新SSH登录,或者在root下执行su - ubuntu,看看能不能正常进入shell并执行命令。如果还是不行,查看SSH的认证日志找线索:

tail -20 /var/log/auth.log

日志里会记录ubuntu用户登录失败的具体原因,比如哪个文件加载出错,根据日志再针对性调整就行。

如果这些步骤还没解决问题,你可以把auth.log里的相关错误信息贴出来,咱们再进一步分析!

备注:内容来源于stack exchange,提问作者Abhilash Dube

火山引擎 最新活动