有趣的 您尚未登录/注册
社区>技术交流
Linux SSH 初始化 & 加固脚本使用指南 (阅31)
2025-12-17 10:34:26

Linux SSH 初始化 & 加固脚本使用指南

📋 功能特性


全平台兼容
SSH端口配置
密码管理
SSH密钥登录
防火墙自动配置
安全加固

🚀 快速开始

1. 下载脚本


方式1: 直接下载(一键执行)

wget https://meimiao.de/sh/linux_ssh_init.sh && chmod +x linux_ssh_init.sh && ./linux_ssh_init.sh

方式2: 使用curl(一键执行)

curl -O https://meimiao.de/sh/linux_ssh_init.sh && chmod +x linux_ssh_init.sh && ./linux_ssh_init.sh

方式3: 分步执行

wget https://meimiao.de/sh/linux_ssh_init.sh
chmod +x linux_ssh_init.sh
./linux_ssh_init.sh

方式4: 手动上传

将脚本上传到服务器任意目录


2. 赋予执行权限

chmod +x linux_ssh_init.sh

3. 运行脚本

sudo ./linux_ssh_init.sh

📖 使用流程

步骤1: SSH端口配置


脚本会提示选择SSH端口配置方式:
========================================
  SSH 端口配置
========================================
1) 使用随机端口
2) 自定义端口
3) 保持默认端口 (22)

请选择 [1-3]:


选项说明:

步骤2: 修改Root密码

========================================
  修改 Root 密码
========================================
是否修改root密码? [y/N]:


密码要求:

步骤3: SSH密钥登录配置

========================================
  SSH 密钥登录配置
========================================
是否启用SSH密钥登录? [Y/n]:


启用密钥登录后:
是否禁用密码登录:
是否禁用密码登录(仅允许密钥登录)? [y/N]:


⚠️ 警告: 选择禁用密码登录后,只能通过密钥连接,请务必保存好私钥!

📥 下载密钥文件

方法1: 使用SCP下载(推荐)

# 从本地电脑执行
scp -P <SSH端口> root@<服务器IP>:/tmp/ssh_keys_*/id_rsa ~/Downloads/
scp -P <SSH端口> root@<服务器IP>:/tmp/ssh_keys_*/id_rsa.pub ~/Downloads/

方法2: 使用SFTP下载

sftp -P <SSH端口> root@<服务器IP>
get /tmp/ssh_keys_*/id_rsa
get /tmp/ssh_keys_*/id_rsa.pub
exit

方法3: 直接复制内容


脚本执行完成后会显示私钥和公钥的完整内容,可以直接复制保存到本地文件。

保存步骤:

🔐 连接到服务器

使用密钥连接

ssh -i /path/to/id_rsa -p <端口> root@<服务器IP>


Windows用户(使用PuTTY): - Host: 服务器IP
- Port: 新SSH端口
- Connection → SSH → Auth → Private key file: 选择.ppk文件

使用密码连接

ssh -p <端口> root@<服务器IP>

🛡️ 安全建议

1. 测试新配置


⚠️ 重要: 在断开当前SSH连接前,务必先测试新配置!
# 保持当前SSH会话不关闭
# 新开一个终端窗口测试连接
ssh -p <新端口> root@<服务器IP>

2. 防火墙配置


如果使用云服务器(阿里云、腾讯云、AWS等),需要在控制台安全组中开放新端口:

阿里云/腾讯云:
AWS:

3. 密钥管理


最佳实践:
# 下载密钥后,在服务器上执行
rm -rf /tmp/ssh_keys_*

4. 配置备份


脚本会自动备份原SSH配置到:
/etc/ssh/sshd_config.backup.YYYYMMDD_HHMMSS


如需恢复:
cp /etc/ssh/sshd_config.backup.* /etc/ssh/sshd_config
systemctl restart sshd  # CentOS
systemctl restart ssh   # Ubuntu/Debian

🔧 故障排除

问题1: 无法连接到新端口


检查防火墙:
# FirewallD (CentOS)
firewall-cmd --list-ports
firewall-cmd --permanent --add-port=<端口>/tcp
firewall-cmd --reload

# UFW (Ubuntu)
ufw status
ufw allow <端口>/tcp

# iptables
iptables -L -n | grep <端口>

问题2: 密钥登录失败


检查权限:
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
chmod 600 /path/to/id_rsa  # 本地私钥


检查SSH配置:
grep "PubkeyAuthentication" /etc/ssh/sshd_config
# 应该显示: PubkeyAuthentication yes

问题3: SSH服务无法启动


查看错误日志:
# CentOS
journalctl -u sshd -n 50

# Ubuntu/Debian
journalctl -u ssh -n 50


测试配置文件:
sshd -t

问题4: 被锁在服务器外


使用云服务商控制台:
恢复配置:
cp /etc/ssh/sshd_config.backup.* /etc/ssh/sshd_config
systemctl restart sshd

📊 配置说明


脚本会应用以下安全配置:
配置项说明
Port自定义/随机SSH监听端口
PasswordAuthenticationyes/no是否允许密码登录
PubkeyAuthenticationyes允许密钥登录
PermitRootLoginyes/prohibit-passwordRoot登录方式
PermitEmptyPasswordsno禁止空密码
MaxAuthTries3最大认证尝试次数
ClientAliveInterval300客户端存活检测间隔(秒)
ClientAliveCountMax2最大存活检测次数
X11Forwardingno禁用X11转发

🎯 使用场景

场景1: 新服务器初始化

# 1. 运行脚本
./linux_ssh_init.sh

# 2. 选择随机端口
# 3. 修改root密码
# 4. 启用密钥登录
# 5. 禁用密码登录
# 6. 下载密钥
# 7. 测试连接

场景2: 仅修改SSH端口

# 1. 运行脚本
./linux_ssh_init.sh

# 2. 选择自定义端口
# 3. 跳过密码修改 (输入n)
# 4. 跳过密钥配置 (输入n)

场景3: 添加密钥登录

# 1. 运行脚本
./linux_ssh_init.sh

# 2. 保持默认端口 (选择3)
# 3. 跳过密码修改 (输入n)
# 4. 启用密钥登录 (输入y)
# 5. 不禁用密码登录 (输入n) - 保留密码作为备用

📝 注意事项

📞 技术支持


如遇到问题,请检查:

📜 许可证


MIT License - 自由使用和修改

🔄 更新日志

v1.0.0 (2024)



祝您使用愉快!🎉

{crll(ID1000)修改此帖2025-12-17 10:42}
[楼主].crllcrll(1000)
[荣誉]
[操作]管理 举报 收藏 打赏
[签名]知天命,懂因果,明是非,擢己身。
登录后才能回复!点击此登录
回帖列表
返回贴子列表
社区>技术交流
×

打赏楼主

top 回顶部
<极速版|触屏版>