| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #!/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服务配置完成"
|