安装前检查
- 查看是否已安装
终端执行:ssh -v # 若显示版本信息则已安装 systemctl status ssh # 检查服务状态(Debian/Ubuntu) systemctl status sshd # 检查服务状态(CentOS/RHEL)
分发行版安装步骤
Debian/Ubuntu 系
sudo apt update && sudo apt upgrade -y # 更新系统 sudo apt install openssh-server -y # 安装SSH服务端 sudo systemctl enable --now ssh # 启动并设置开机自启
CentOS/RHEL/Fedora
sudo yum check-update && sudo yum update -y # 更新系统 sudo yum install openssh-server openssh-clients -y # 安装服务端和客户端 sudo systemctl enable --now sshd # 启动并设置开机自启
Arch Linux/Manjaro
sudo pacman -Syu openssh # 更新系统并安装 sudo systemctl enable --now sshd # 启动服务
openSUSE
sudo zypper refresh && sudo zypper update -y # 更新系统 sudo zypper install openssh # 安装 sudo systemctl enable --now sshd # 启动服务
基础配置与安全加固
-
修改配置文件
编辑/etc/ssh/sshd_config
:sudo nano /etc/ssh/sshd_config
- 更改默认端口(避免22端口扫描):
Port 2222
- 禁止root远程登录:
PermitRootLogin no
- 仅允许密钥认证(更高安全):
PasswordAuthentication no
- 限制用户白名单:
AllowUsers your_username
- 更改默认端口(避免22端口扫描):
-
重启服务生效
sudo systemctl restart sshd # 或 ssh(Ubuntu系)
防火墙放行SSH
- UFW(Ubuntu)
sudo ufw allow 2222/tcp # 替换为自定义端口 sudo ufw reload
- Firewalld(CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --reload
连接测试
- 本地验证:
ssh username@localhost -p 2222 # 使用自定义端口
- 远程连接(其他设备):
ssh username@服务器IP -p 2222
高级安全措施
-
密钥认证替代密码
- 本地生成密钥:
ssh-keygen -t ed25519
- 上传公钥到服务器:
ssh-copy-id -p 2222 user@host
- 本地生成密钥:
-
Fail2ban防护暴力破解
sudo apt install fail2ban # Debian/Ubuntu sudo yum install fail2ban # CentOS/RHEL
-
定期更新SSH
sudo apt upgrade openssh-server # Ubuntu sudo yum update openssh-server # CentOS
故障排查
- 连接被拒:检查服务状态
systemctl status sshd
和防火墙规则。 - 认证失败:确认
sshd_config
中PasswordAuthentication
和用户权限。 - 端口占用:
sudo netstat -tuln | grep 2222
查看端口监听。
重要提示:
- 修改配置前备份原文件:
sudo cp /etc/ssh/sshd_config{,.bak}
- 测试配置有效性:
sudo sshd -t
- 首次配置建议保留一个活动会话,避免锁死服务器。
引用说明:
操作参考 OpenSSH官方文档、Ubuntu Server指南 及 Red Hat系统管理手册,安全建议遵循NIST SP 800-123标准。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6932.html