简介

通常VPS或云主机(例如:AWS、GCP、Oracle Cloud …)创建后并不可以让用户直接使用root帐户登入,而是必须使用一组ssh-key做登入验证。登入用ssh-key验证是比较安全,但想在其他地方的电脑登入,手上又没有private key档案的话就比较麻烦。

既然用户是Superuser权限,就还是可以解决这些问题的。

最简单的方式——cloud-init脚本(创建VPS之前)

创建instance时,点击add launch script,将下列代码复制进去注意更改root密码.

#!/bin/bash
echo root:password123456 |sudo chpasswd root
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
sudo service sshd restart

将第二行的 password123456 换成自己的明文密码,否则默认root密码为 password123456
不能添加代码的机器,可以选择先登录进ssh,再通过手动方式修改权限.

手动方式修改(创建VPS完成之后)

先使用可以登录VPS或云主机的方式登录上ssh
获取到root权限,从$变成#即为切换到root

sudo -i

修改登录权限

sed -i 's/^.*PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sed -i 's/^.*PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;

修改root密码(如果不用密码登录使用public_key方式登录,这一步可以跳过)

sudo passwd root

New password: #输入自己设置的新密码
Retype new password: #再次输入新密码

重启ssh服务

Centos 命令

service sshd restart

Debian / Ubuntu 命令

/etc/init.d/ssh restart

Centos Debian Ubuntu 理论上全版本都支持

实测支持AWS、GCP、Oracle Cloud

以上。

最后修改:2024 年 09 月 04 日
如果觉得我的文章对你有用,请随意赞赏