服务器配置SSH的核心在于安装OpenSSH服务端、修改配置文件允许远程连接,并通过防火墙放行22端口,整个过程只需几个关键命令即可完成。
云服务器配置SSH远程连接的准备工作
动手配置前,先确认服务器环境,多数云服务器预装了Linux系统,但部分镜像可能未启用SSH,你需要拥有root或sudo权限,以及控制台或VNC的访问能力,以防万一配置出错导致失联。
检查系统版本与SSH状态
登录服务器后,先查看系统发行版,不同包管理器命令不同,但大同小异,用以下命令确认SSH是否已安装:
ssh -V查看SSH客户端版本systemctl status sshd检查服务状态(适用于systemd系统)ps -ef | grep ssh查看进程是否运行
如果服务未运行或未安装,进入下一步,业内专家指出,大多数云服务器镜像默认包含OpenSSH,但部分国产系统可能需手动启用。
获取root权限与网络信息
配置SSH通常需要修改系统文件,建议使用root用户或具有sudo权限的账户,同时记录下公网IP、内网IP(用于云平台内网连接)以及所在区域,如果你购买的是国内服务器配置SSH,还需注意运营商是否屏蔽22端口部分云厂商默认安全组不放行此端口。
国内服务器配置SSH的核心步骤详解
整个配置过程分为安装、启动、配置、放行四个环节,以下步骤以Ubuntu 22.04和CentOS 7为例,其他发行版命令类似。
安装OpenSSH服务端
- Debian/Ubuntu系:
sudo apt update && sudo apt install openssh-server -y - RHEL/CentOS系:
sudo yum install -y openssh-server(或dnf) - openSUSE:
sudo zypper install openssh
安装后,服务会自动启动,若未启动,运行
sudo systemctl start sshd,设置开机自启:sudo systemctl enable sshd。
修改SSH配置文件
核心配置文件是/etc/ssh/sshd_config,使用sudo vim或nano编辑,重点关注以下参数:
Port 22:默认端口,建议修改为高位端口(如Port 2222)以降低被扫描概率。国内服务器配置SSH时,修改端口常能绕过部分ISP的封锁。PermitRootLogin yes:是否允许root直接登录,出于安全考虑,建议设为prohibit-password(仅允许密钥登录)或no,日常使用普通用户登录后再su。PubkeyAuthentication yes:启用密钥认证。PasswordAuthentication yes:密码认证,若配置密钥后,可改为no彻底禁用密码登录。ListenAddress 0.0.0.0:监听所有网卡,若只需内网访问可改为内网IP。
修改后保存退出,测试配置正确性:sudo sshd -t,无报错即可重启服务:sudo systemctl restart sshd。
防火墙放行端口
如果服务器开启防火墙,需要放行新的端口,以最常用的firewalld和iptables为例:
- firewalld(CentOS 7+):
sudo firewall-cmd --permanent --add-port=2222/tcpsudo firewall-cmd --reload - iptables:
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT并保存规则 - 云平台安全组:云服务器配置SSH远程连接时,必须登录云控制台,在安全组/防火墙规则中添加入方向规则,放行TCP端口(如2222),这是最容易被忽略的步骤。
提示
:修改端口后,在当前会话中不要关闭,先另开终端测试新端口是否可连,确认无误再关闭旧会话。
便宜服务器配置SSH的安全加固方案
对于预算有限的服务器,安全配置更需谨慎,因为共享IP段常被扫描,以下加固措施兼顾成本与效果。
密钥认证替代密码认证
密码容易被暴力破解,密钥认证几乎无法被暴力枚举,先在本地生成密钥对:
ssh-keygen -t ed25519 -C "your_comment"
将公钥上传至服务器~/.ssh/authorized_keys(权限设为600),然后修改sshd_config:
PasswordAuthentication noChallengeResponseAuthentication no
重启服务后,只有拥有私钥的客户端才能连接。
修改默认端口与限制登录IP
便宜服务器配置SSH时,修改端口能立刻减少90%的扫描攻击,选择一个不常用的端口(如10022、22222),并配合防火墙限制来源IP:
- 仅允许特定IP连接:
iptables -A INPUT -p tcp --dport 2222 -s 你的IP -j ACCEPT - 否则拒绝:
iptables -A INPUT -p tcp --dport 2222 -j DROP
对于动态IP用户,可搭配Fail2ban实现自动封禁。
使用Fail2ban防御暴力破解
安装Fail2ban后,它会监控SSH日志,对多次失败尝试的IP进行临时封禁,配置简单:
sudo apt install fail2ban -y sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo systemctl enable fail2ban
默认规则已包含SSH,只需修改/etc/fail2ban/jail.local中的bantime和maxretry,行业共识认为,结合密钥认证与Fail2ban,服务器的SSH安全性能达到相当高的水平。
服务器怎么配置SSH连接测试与排错
配置完成后,必须验证连接是否正常,从客户端使用
ssh命令,指定端口和用户名:
ssh -p 2222 username@server_ip
若无法连接,按以下顺序排查:
- 连接超时:防火墙或安全组未放行端口,或IP地址错误。
- 连接被拒绝:服务未启动,或
sshd_config中ListenAddress限制不正确。 - 认证失败:密码错误或密钥不匹配,检查
~/.ssh/authorized_keys。 - 端口不可达:使用
telnet server_ip port测试端口是否开放,若不通,检查防火墙和安全组。
云服务器配置SSH远程连接时,控制台提供的“VNC登录”是救急通道,确保在修改配置时保持至少一个会话可用。
服务器SSH配置常见问题与解答
Q:修改SSH端口后无法连接,怎么恢复?
A:通过云控制台的VNC或远程连接功能进入系统,编辑/etc/ssh/sshd_config将端口改回22,重启服务,然后检查防火墙规则,务必确保新端口已放行并测试通过后再删除旧端口规则。
Q:国内服务器配置SSH时,为什么22端口连不上?
A:国内部分云运营商默认安全组未放行22端口,或ISP层面封锁了22端口,建议修改为其他端口(如1022、2222),并在安全组和防火墙中同时放行,如果使用国内服务器配置SSH,修改端口后连接成功率会有明显提升。
Q:密钥认证已配置,但服务器仍提示密码登录?
A:检查sshd_config中PasswordAuthentication是否设为no,并确认PubkeyAuthentication为yes,重启服务前需执行sshd -t测试配置语法,若问题依旧,检查~/.ssh/authorized_keys文件权限是否为600,父目录权限是否为700。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/533342.html



