setup-ssh.sh 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/bin/bash
  2. # SSH服务配置脚本
  3. # 用于设置和启动SSH服务
  4. echo "开始配置SSH服务..."
  5. # 安装 SSH 服务
  6. apt-get update && apt-get install -y openssh-server
  7. # 创建sshd用户(如果不存在)
  8. if ! id "sshd" &>/dev/null; then
  9. useradd -r -s /bin/false -d /var/run/sshd -c "SSH privilege separation" sshd
  10. echo "已创建sshd用户"
  11. fi
  12. # 创建并设置正确的目录权限
  13. mkdir -p /var/run/sshd
  14. chown root:root /var/run/sshd
  15. chmod 755 /var/run/sshd
  16. # 创建/run/sshd目录(系统运行时目录)
  17. mkdir -p /run/sshd
  18. chown root:root /run/sshd
  19. chmod 755 /run/sshd
  20. # 生成SSH主机密钥(如果不存在)
  21. if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then
  22. ssh-keygen -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key -N ""
  23. echo "已生成RSA主机密钥"
  24. fi
  25. if [ ! -f /etc/ssh/ssh_host_ecdsa_key ]; then
  26. ssh-keygen -t ecdsa -b 521 -f /etc/ssh/ssh_host_ecdsa_key -N ""
  27. echo "已生成ECDSA主机密钥"
  28. fi
  29. if [ ! -f /etc/ssh/ssh_host_ed25519_key ]; then
  30. ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""
  31. echo "已生成Ed25519主机密钥"
  32. fi
  33. # 设置 root 用户密码
  34. passwd -u root && echo 'root:root' | chpasswd
  35. # 配置SSH服务
  36. # 允许 root 用户通过 SSH 登录
  37. sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
  38. # 允许密码认证
  39. sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config
  40. # 重启 SSH 服务
  41. service ssh start
  42. # 检查SSH服务状态
  43. if service ssh status >/dev/null 2>&1; then
  44. echo "SSH服务启动成功"
  45. echo "SSH连接信息:"
  46. echo " 用户名: root"
  47. echo " 密码: root"
  48. echo " 端口: 22"
  49. else
  50. echo "警告:SSH服务启动失败"
  51. exit 1
  52. fi
  53. echo "SSH服务配置完成"