安装OpenSSH,编辑sshd_config配置权限与端口,设置防火墙开放22端口,重启S
服务器搭建SSH详细指南
SSH基础概念
SSH(Secure Shell)是一种加密的网络传输协议,用于计算机之间加密的数据通讯,它通过密钥交换算法和对称加密技术,保障远程登录、文件传输等操作的安全性,在服务器管理中,SSH是管理员连接云端或物理服务器的核心工具。
SSH服务搭建步骤
以下以Linux服务器(Ubuntu/CentOS)为例,演示从安装到安全配置的完整流程。
步骤 | 命令/操作 | 作用 |
---|---|---|
安装OpenSSH | sudo apt install openssh-server (Ubuntu)sudo yum install openssh-server (CentOS) | 部署SSH服务端软件 |
启动服务 | sudo systemctl start ssh | 激活SSH服务 |
设置开机自启 | sudo systemctl enable ssh | 确保服务器重启后自动运行SSH |
检查状态 | sudo systemctl status ssh | 确认服务正常运行(Active: active) |
配置文件详解(/etc/ssh/sshd_config
)
SSH的核心配置文件位于 /etc/ssh/sshd_config
,常用参数如下:
参数 | 默认值 | 作用 | 建议值 |
---|---|---|---|
Port | 22 | 指定SSH监听端口 | 修改为非标准端口(如2222) |
PermitRootLogin | yes | 是否允许root用户直接登录 | no (安全性更高) |
PasswordAuthentication | yes | 是否启用密码认证 | no (改用密钥认证) |
AllowUsers | 所有用户 | 限定允许登录的用户 | 指定管理员用户名 |
MaxAuthTries | 6 | 最大认证尝试次数 | 3-5次(防暴力破解) |
修改配置后需重启服务:sudo systemctl restart ssh
安全加固方案
禁用密码登录,强制使用密钥认证
- 编辑
sshd_config
,设置PasswordAuthentication no
- 生成密钥对:
ssh-keygen
- 将公钥追加到服务器的
~/.ssh/authorized_keys
- 编辑
限制IP访问
- 修改
sshd_config
,添加:AllowUsers user1 user2 DenyUsers *
- 或通过防火墙规则限制(如
iptables
/ufw
)。
- 修改
端口转发与加密
- 修改默认端口(如2222),并配置防火墙放行:
sudo ufw allow 2222/tcp
- 修改默认端口(如2222),并配置防火墙放行:
客户端连接测试
使用ssh
命令连接服务器:
ssh -p [端口号] [用户名]@[服务器IP]
示例:ssh -p 2222 admin@192.168.1.100
FAQs
Q1:修改SSH端口后无法连接,如何解决?
A:需通过控制台或VNC登录服务器,临时改回默认端口(22),或通过云厂商控制台开放新端口,建议修改前先配置防火墙规则。
Q2:如何限制特定用户通过SSH登录?
A:在sshd_config
中添加 AllowUsers username
,仅允许指定用户登录,也可通过/etc/ssh/blacklist
文件屏蔽敏感用户。
小编有话说
SSH是服务器管理的“大门”,其安全性直接关系到服务器的生存能力,建议新手从默认配置开始,逐步学习参数含义后再调整,重点注意:
- 永远备份原始配置文件(如
cp sshd_config sshd_config.bak
); - 密钥认证比密码更安全,避免使用简单密码;
- 端口修改后同步更新防火墙规则,否则会导致断连。
实践时可搭配fail2ban
等工具,自动拦截暴力破解行为,进一步提升
小伙伴们,上文介绍了“服务器搭建ssh”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复