#!/bin/bash # SSH测试服务器启动脚本 set -e echo "=== SSH Test Server Starting ===" # 生成SSH主机密钥(如果不存在) echo "Generating SSH host keys..." ssh-keygen -A # 创建必要的目录 mkdir -p /var/run/sshd mkdir -p /var/log # 设置正确的权限 chmod 700 /var/run/sshd # 创建测试用户的SSH目录并设置权限 for user in root root2 admin test user guest oracle mysql ftp web service postgres redis mongodb; do if id "$user" &>/dev/null; then user_home=$(eval echo "~$user") mkdir -p "$user_home/.ssh" chown "$user:$user" "$user_home/.ssh" chmod 700 "$user_home/.ssh" # 为一些用户创建authorized_keys文件(用于公钥认证测试) if [ "$user" = "admin" ] || [ "$user" = "test" ]; then touch "$user_home/.ssh/authorized_keys" chown "$user:$user" "$user_home/.ssh/authorized_keys" chmod 600 "$user_home/.ssh/authorized_keys" fi fi done # 显示所有测试用户账户信息 echo "=== Test Users Created ===" echo "Root accounts:" echo " root:password" echo " root2:password" echo "" echo "Admin accounts:" echo " admin:123456 (sudo access)" echo " test:test123 (sudo access)" echo "" echo "Regular users:" echo " user:user" echo " guest:guest (chroot enabled)" echo " web:web123" echo " service:service123" echo "" echo "Database users:" echo " oracle:oracle" echo " mysql:mysql" echo " postgres:postgres" echo " redis:redis123" echo " mongodb:mongo123" echo "" echo "System users:" echo " ftp:ftp" echo " anonymous:" echo "" echo "=== SSH Server Configuration ===" echo "Port: 22" echo "Password Authentication: Enabled" echo "Root Login: Enabled" echo "Empty Passwords: Enabled (for anonymous user)" echo "Max Auth Tries: 6" echo "" # 显示网络信息 echo "=== Network Information ===" echo "Container IP: $(hostname -I)" echo "Mapped port: Check docker-compose.yml for port mapping" echo "" # 启动SSH服务 echo "Starting SSH daemon..." exec /usr/sbin/sshd -D -e