#!/bin/bash # SSH服务配置脚本 # 用于设置和启动SSH服务 echo "开始配置SSH服务..." # 安装 SSH 服务 apt-get update && apt-get install -y openssh-server # 创建sshd用户(如果不存在) if ! id "sshd" &>/dev/null; then useradd -r -s /bin/false -d /var/run/sshd -c "SSH privilege separation" sshd echo "已创建sshd用户" fi # 创建并设置正确的目录权限 mkdir -p /var/run/sshd chown root:root /var/run/sshd chmod 755 /var/run/sshd # 创建/run/sshd目录(系统运行时目录) mkdir -p /run/sshd chown root:root /run/sshd chmod 755 /run/sshd # 生成SSH主机密钥(如果不存在) if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then ssh-keygen -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key -N "" echo "已生成RSA主机密钥" fi if [ ! -f /etc/ssh/ssh_host_ecdsa_key ]; then ssh-keygen -t ecdsa -b 521 -f /etc/ssh/ssh_host_ecdsa_key -N "" echo "已生成ECDSA主机密钥" fi if [ ! -f /etc/ssh/ssh_host_ed25519_key ]; then ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N "" echo "已生成Ed25519主机密钥" fi # 设置 root 用户密码 passwd -u root && echo 'root:root' | chpasswd # 配置SSH服务 # 允许 root 用户通过 SSH 登录 sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config # 允许密码认证 sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config # 重启 SSH 服务 service ssh start # 检查SSH服务状态 if service ssh status >/dev/null 2>&1; then echo "SSH服务启动成功" echo "SSH连接信息:" echo " 用户名: root" echo " 密码: root" echo " 端口: 22" else echo "警告:SSH服务启动失败" exit 1 fi echo "SSH服务配置完成"