安装SSH服务
检查是否已安装
systemctl status sshd # 查看SSH服务状态
若显示Unit sshd.service could not be found
,则需安装。
安装OpenSSH服务器
- Debian/Ubuntu:
sudo apt update && sudo apt install openssh-server -y
- CentOS/RHEL:
sudo yum install openssh-server -y
启动并设置开机自启
sudo systemctl start sshd # 启动服务 sudo systemctl enable sshd # 开机自启
基础配置
配置文件路径:/etc/ssh/sshd_config
关键参数修改(需root权限):
sudo nano /etc/ssh/sshd_config
- 修改默认端口(避免暴力破解):
Port 2222 # 将22改为自定义端口(如2222)
- 禁止root远程登录(增强安全):
PermitRootLogin no
- 限制登录用户:
AllowUsers alice bob # 仅允许alice和bob登录
- 启用密钥登录(推荐):
PasswordAuthentication no # 关闭密码登录 PubkeyAuthentication yes # 启用密钥登录
保存后重启服务:
sudo systemctl restart sshd
防火墙放行SSH
开放自定义端口(以2222为例)
- firewalld(CentOS/RHEL):
sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --reload
- ufw(Ubuntu):
sudo ufw allow 2222/tcp sudo ufw reload
验证端口监听:
ss -tunlp | grep sshd
输出应显示LISTEN
状态(如0.0.0:2222
)。
使用密钥登录(更安全)
本地生成密钥对(在客户端操作):
ssh-keygen -t ed25519 # 生成ED25519密钥(推荐)
将公钥id_ed25519.pub
复制到服务器:
ssh-copy-id -p 2222 user@server_ip # 替换端口和IP
测试登录:
ssh -p 2222 user@server_ip # 无需密码即成功
安全加固建议
- Fail2Ban防护:自动封禁暴力破解IP
sudo apt install fail2ban # Debian/Ubuntu sudo yum install fail2ban # CentOS/RHEL
- 禁用弱加密算法:在
sshd_config
末尾添加:KexAlgorithms curve25519-sha256 Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com MACs hmac-sha2-512-etm@openssh.com
- 定期更新:
sudo apt upgrade openssh-server # Debian/Ubuntu sudo yum update openssh-server # CentOS/RHEL
常见问题解决
- 连接超时:
检查防火墙规则、云服务商安全组是否放行端口。 - 权限错误:
确保~/.ssh
目录权限为700,密钥文件为600:chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
- 服务无法启动:
检查配置语法:sudo sshd -t
SSH是Linux系统管理的安全基石,通过修改默认端口、强制密钥登录、结合Fail2Ban防护,可显著提升安全性,定期审计日志(/var/log/auth.log
)和更新系统是长期维护的关键,对于生产环境,建议参考NIST或CIS安全基准进一步加固。
引用说明:
- OpenSSH官方文档:https://www.openssh.com/manual.html
- Linux man pages(
man sshd_config
)- CIS安全指南:https://www.cisecurity.org/benchmark/linux
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9965.html