无论是腾讯云还是阿里云,使用 Ubuntu 系统,默认使用的账户名都是 ubuntu 而非 root 账户。如果我们使用 ubuntu 账户去安装一些应用则很不方便需要切换到 root 账户下才能安装。另一方面为了安全起见,在选择系统的时候的启用了密钥登录。这个密钥是和 ubuntu 绑定,启用了 root 账户也无法使用这个密钥登录,还是要使用 ubuntu 账户登录后再 su 到 root 账户。每次这样弄都很麻烦,今天就解决这个问题,直接让 root 账户使用设置的密钥登录解除后顾之忧。

解决方法

使用 ubuntu 账户登录 ubuntu 设置 root 账户的密码启用 root 账户,如果已经启用了忽略这一步。su 切换到 root 账户,将 ubuntu 账户的密钥拷贝到 root 账户下即可,后续可以删除 ubuntu 账户,如果你已使用 ubuntu 账户安装了应用,需考虑删除 ubuntu 账户会不会影响应用的正常运行,命令如下:

sudo passwd root   # 设置 root 账户密码,启用 root 账户; 
su root    # 切换到 root 账户; 
cat /home/ubuntu/.ssh/authorized_keys > /root/.ssh/authorized_keys   # 拷贝密钥文件到 root 账户下; 
userdel ubuntu   # 删除 ubuntu 账户,在 root 账户下操作;

最后一步删除ubuntu,可能会出现:“user ubuntu is currently used by process XXXXXX”提示,可能的原因是你创建用户user1之后,使用su命令切换到user1用户下,之后又想删除user1用户,使用su root切换到root用户下,使用userdel user1。出现上述情况的根本原因在于切换回root用户之后,user1还被某个进程占用。解决方案只要两次exit退出 root 和 ubuntu 账号后重新连接(此时可以通过 root+密匙登录)后,再次删除ubuntu账户。