简介
通常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;
如果无法复制脚本也可以手动输入
vi /etc/ssh/sshd_config
使用vi 编辑器 找到将PermitRootLogin
将 no
改为 yes
和 PasswordAuthentication
将 no
改为 yes
,修改后输入:wq
保存
修改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
以上。