返回

一键设置ROOT账户访问SSH的脚本

当我们自己用官方 [Ubuntu服务器镜像](https://ubuntu.com/download/server) 安装到服务器上面之后登录账号也只能登录当初安装并设置的账号并用`sudo...

Featured image of post 一键设置ROOT账户访问SSH的脚本

目录

TL;DR / [极客简报]:

  • 提权闭环:一键突破Ubuntu等镜像默认关闭Root SSH的限制,实现服务器控制权的极致集中。
  • 自动化修改:通过 sed 正则修改 sshd_config 配置,配合 chpasswd 强制重置Root口令。
  • 多端适配:涵盖针对Ubuntu、CentOS、Arch及Debian的专属脚本,实现跨发行版的服务器初始化自动化。

# 前言

当我们自己用官方 Ubuntu服务器镜像 安装到服务器上面之后登录账号也只能登录当初安装并设置的账号并用sudo su命令提权,但是并没有root账户可以进行SSH登录,这是因为root账户创建之后每次开机都会随机密码且关闭SSH登录,所以我们去一个一个的用nanovim改密码对我们来说一点都不方便。

Windows全部都需要新建一个.txt文件之后改后缀保存为.sh文件并在linux上面./root.sh运行

linux 直接用nano或者vim创建一个root.sh并使用./运行即可

# ubuntu专属

只针对内网ubuntu(不要安全只要方便)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/bin/bash

# 开启root权限
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config

## 设置root密码
echo "root:awa114514" | chpasswd

## 重启sshd服务
systemctl restart sshd.service

echo "SSH ROOT权限已开启并密码已更改为awa114514"

# 兼容所有linux发型版本的脚本

随手写的

兼容所有linux发行版的正常脚本
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash

## 检查 root 密码是否满足安全要求
if ! check_passwd; then
  echo "root 密码不安全,请重新设置 root 密码"
  exit 1
fi

## 提示用户确认操作
read -p "确认开启 root 权限并设置 root 密码吗?(y/n) " answer
if [[ $answer != "y" ]]; then
  echo "操作已取消"
  exit 1
fi

## 检查系统类型
type=$(uname | tr '[:upper:]' '[:lower:]')

## 开启 root 权限
case $type in
  linux)
    sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
    ;;
  *)
    echo "该脚本仅适用于 Linux 系统"
    exit 1
    ;;
esac

## 设置 root 密码
echo "root:$password" | chpasswd

## 重启 sshd 服务
systemctl restart sshd.service

echo "SSH ROOT 权限已开启并密码已更改为 $password"

# 兼容 CentOS、Ubuntu、Arch 和 Debian 的脚本

随手写的

兼容 CentOS、Ubuntu、Arch 和 Debian 的脚本
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash

## 检查root密码是否满足安全要求
if ! check_passwd; then
  echo "root密码不安全,请重新设置root密码"
  exit 1
fi

## 提示用户确认操作
read -p "确认开启root权限并设置root密码吗?(y/n) " answer
if [[ $answer != "y" ]]; then
  echo "操作已取消"
  exit 1
fi

## 检查操作系统
os=$(cat /etc/os-release | grep "PRETTY_NAME" | cut -d '=' -f 2 | tr -d '"')

## 开启root权限
case $os in
  "CentOS Linux")
    sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
    ;;
  "Ubuntu")
    sed -i 's/#PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config
    ;;
  "Arch Linux")
    sed -i 's/#PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config
    ;;
  "Debian")
    sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
    ;;
esac

## 设置root密码
echo "root:awa114514" | chpasswd

## 重启sshd服务
systemctl restart sshd.service

echo "SSH ROOT权限已开启并密码已更改为awa114514"