在远程管理服务器的众多方式中,SSH始终是最主流也是最安全的一种连接协议。无论是云服务器、公有云VPS还是私有部署的物理机,只要是运行Linux操作系统,几乎都可以通过SSH进行远程命令控制和文件管理。Ubuntu作为应用广泛的服务器操作系统,配置SSH访问是其系统初始化过程中不可或缺的一环。
什么是SSH协议?
SSH,全称为Secure Shell,是一种建立在TCP协议上的安全通信协议,广泛用于在非安全网络中提供远程登录、命令执行、文件传输等功能。SSH具有如下特点:①支持数据加密,防止中间人攻击;②提供密钥认证机制,安全性高于传统用户名密码;③默认使用22端口,支持任意端口修改;④可用于SFTP、rsync等文件传输方式。
在Ubuntu系统中,SSH是远程登录的首选协议,基本实现了无物理接触即可管理服务器资源。
Ubuntu系统SSH服务的安装步骤
Ubuntu默认并不启用SSH服务,需要手动安装OpenSSH Server组件。
步骤1:更新软件源
sudo apt update && sudo apt upgrade -y
保持系统和软件包为最新版本是安全配置的第一步。
步骤2:安装OpenSSH Server
sudo apt install openssh-server -y
安装完成后,SSH服务会自动启动。可通过如下命令查看服务状态:
sudo systemctl status ssh
若输出状态为“active (running)”,则说明SSH服务已成功运行。
使用SSH客户端连接Ubuntu服务器
方法1:命令行连接(适用于Linux或Mac客户端)
ssh username@server_ip
若首次连接,系统会提示是否信任该主机的指纹,输入yes即可。随后输入服务器账户密码即可登录。
方法2:使用Windows客户端(如PuTTY、Xshell)
- 在“Host Name”中填写服务器IP;
- 默认端口为22,用户名填写系统账户名;
- 点击“Open”后输入密码即可连接。
安全性配置:修改SSH默认端口
SSH默认监听22端口,这使得许多自动化暴力破解工具专门扫描该端口进行尝试。因此,修改默认端口是最基础的防护手段。
步骤1:编辑配置文件
sudo nano /etc/ssh/sshd_config
找到以下行并修改端口号(如2222):
#Port 22
Port 2222
去掉注释符#后保存文件。
步骤2:重启SSH服务
sudo systemctl restart ssh
注意:在云服务器控制台中,需放行新端口(如2222),否则连接将被防火墙阻挡。
配置基于密钥的SSH认证(强烈推荐)
密码登录存在被爆破的风险,建议采用基于公钥/私钥的认证方式。
步骤1:客户端生成密钥对
在本地终端执行以下命令:
ssh-keygen -t rsa -b 4096
系统会提示保存位置(默认~/.ssh/id_rsa),可直接回车生成。之后将看到如下文件:
- id_rsa: 私钥,仅保存在本地;
- id_rsa.pub: 公钥,可上传至服务器。
步骤2:将公钥复制至Ubuntu服务器
ssh-copy-id -p 2222 username@server_ip
若无法使用该命令,也可手动将id_rsa.pub内容追加至服务器的~/.ssh/authorized_keys文件中。
步骤3:关闭密码登录(可选但推荐)
再次编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config
设置如下项:
PasswordAuthentication no
ChallengeResponseAuthentication no
然后重启服务:
sudo systemctl restart ssh
此后仅允许通过私钥连接,提高服务器抗入侵能力。
限制SSH访问来源IP
如果您的运营环境允许固定IP登录,可以进一步通过防火墙(限制SSH访问IP。
使用UFW限制IP访问SSH端口:
sudo ufw allow from 203.0.113.88 to any port 2222
仅允许指定IP(如203.0.113.88)访问SSH端口。
启用UFW防火墙:
sudo ufw enable
查看状态:
sudo ufw status
该方法适用于内网、办公固定IP等场景,能够有效阻断大多数非法扫描行为。
设置登录欢迎信息与SSH Banner(可选)
可在SSH登录前展示系统警告或公司声明,作为法律声明或提示信息。
编辑banner文件:
sudo nano /etc/issue.net
写入内容如:
Unauthorized access to this system is prohibited.
All activities may be monitored and logged.
修改SSH配置以启用:
Banner /etc/issue.net
重启服务生效:
sudo systemctl restart ssh
常见问题与故障排查建议
Q1:修改SSH端口后无法连接
A1:检查是否已放行新端口;检查防火墙(UFW)是否允许;是否正确重启SSH服务。
Q2:密钥认证失败
A2:检查权限:~/.ssh目录权限需为700,authorized_keys为600;确保公钥内容未换行、无乱码;查看服务器日志 /var/log/auth.log 获取认证错误详情。
Q3:远程连接卡顿
A3:排查网络质量,可通过UseDNS no 优化SSH连接速度,配置在 /etc/ssh/sshd_config 中。
Ubuntu系统通过SSH远程管理的方式,兼具便利性与高效率。但若默认配置不加以强化,极易成为攻击者的目标。通过本文介绍的安装、端口调整、密钥登录、访问控制等多种方式,可以将Ubuntu服务器的SSH访问打造成一个既高效又安全的管理通道。