本文最后更新于 2024-10-14,文章内容可能已经过时。

一键更改root密码并开启远程


我提供了一键脚本,如果您不想继续看下去

curl -sSL http://su.qnm.cc/setup-ssh.sh -o setup-ssh.sh && bash setup-ssh.sh

脚本内容 (setup-ssh.sh)

若没有提供密码,则使用默认密码 Suki520.

#!/bin/bash

# 设置默认密码
DEFAULT_PASSWORD="Suki520."

# 颜色设置
RED='\033[1;31m'      # 明亮的红色
GREEN='\033[1;32m'    # 明亮的绿色
YELLOW='\033[1;33m'   # 明亮的黄色
BLUE='\033[1;34m'     # 明亮的蓝色
CYAN='\033[1;36m'     # 明亮的青色
MAGENTA='\033[1;35m'  # 明亮的品红色
NC='\033[0m'          # 无颜色

# 检测系统信息
OS=$(cat /etc/os-release | grep "^NAME=" | cut -d= -f2 | tr -d '"')
VERSION=$(cat /etc/os-release | grep "^VERSION=" | cut -d= -f2 | tr -d '"')

# 输出系统信息
echo -e "${BLUE}检测到的系统: $OS${NC}"
echo -e "${BLUE}系统版本: $VERSION${NC}"

# 根据不同的系统类型执行相应的命令
if [[ "$OS" == "Ubuntu" || "$OS" == "Debian" ]]; then
    echo -e "${GREEN}配置 Ubuntu/Debian 系统的 SSH 设置...${NC}"
  
    # 修改 SSH 配置,允许 root 登录
    sudo sed -i 's/^#*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config

    # 启用密码验证
    sudo sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config

elif [[ "$OS" == "CentOS" || "$OS" == "RHEL" ]]; then
    echo -e "${GREEN}配置 CentOS/RHEL 系统的 SSH 设置...${NC}"
  
    # 修改 SSH 配置,允许 root 登录
    sudo sed -i 's/^#*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config

    # 启用密码验证
    sudo sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config

else
    echo -e "${RED}不支持的系统类型: $OS${NC}"
    exit 1
fi

# 提示用户输入新密码,并允许输入显示
echo -n -e "${YELLOW}请输入新的 root 密码(默认密码为 ($DEFAULT_PASSWORD),直接按 Enter 使用默认密码):${NC}"
read -e NEW_PASSWORD  # 使用 -e 选项允许命令行编辑和显示输入内容

# 如果用户没有输入密码,则使用默认密码
if [ -z "$NEW_PASSWORD" ]; then
    NEW_PASSWORD=$DEFAULT_PASSWORD
fi

# 修改 root 用户密码
echo "root:$NEW_PASSWORD" | sudo chpasswd

# 重启 SSH 服务
if [[ "$OS" == "Ubuntu" || "$OS" == "Debian" ]]; then
    sudo systemctl restart ssh
else
    sudo systemctl restart sshd
fi

# 获取服务器的 IP 地址
IP=$(hostname -I | awk '{print $1}')
PORT=22  # 默认 SSH 端口
USER="root"

# 输出提示信息(中文)并以表格形式突出显示
echo -e "\n${CYAN}==============================================${NC}"
echo -e "${MAGENTA}             SSH 配置已更新                 ${NC}"
echo -e "${CYAN}==============================================${NC}"
echo -e "${YELLOW}您可以使用以下命令连接到服务器:${NC}"
echo -e "${BLUE}ssh $USER@$IP -p $PORT${NC}"
echo -e "${YELLOW}密码:$NEW_PASSWORD${NC}"
echo -e "${CYAN}==============================================${NC}"

使用方法

  1. 将脚本上传到服务器(与之前相同):
scp setup-ssh.sh username@your_server_ip:/var/www/html/
  1. 设置脚本的执行权限
ssh username@your_server_ip
sudo chmod +x /var/www/html/setup-ssh.sh

一键命令示例

curl -sSL http://your_server_ip/setup-ssh.sh -o setup-ssh.sh && bash setup-ssh.sh

安全提示

  • 默认密码:使用默认密码可能带来安全隐患,建议在生产环境中始终使用强密码。
  • HTTPS:如果可能,使用 HTTPS 来保护传输中的数据。