在Ubuntu系统中开启SSH服务器可以让用户通过网络远程管理服务器或桌面系统,这对于需要远程操作或服务器管理的场景非常实用,以下是详细的配置步骤和注意事项,帮助您顺利完成SSH服务器的开启和配置。
确保您的Ubuntu系统已经更新到最新的软件包列表,打开终端,执行以下命令更新系统:
sudo apt update && sudo apt upgrade -y
这一步可以确保所有软件包都是最新版本,避免因版本问题导致配置失败。
安装SSH服务器软件包,Ubuntu默认可能没有安装SSH服务,需要手动安装,OpenSSH是常用的SSH实现,包含服务器端和客户端组件,执行以下命令安装:
sudo apt install openssh-server -y
安装过程中,系统会自动启动SSH服务,如果未自动启动,可以通过以下命令手动启动并设置为开机自启:
sudo systemctl start ssh sudo systemctl enable ssh
您可以使用 systemctl status ssh 命令检查服务状态,确保显示“active (running)”。
为了增强安全性,建议修改SSH的默认配置文件,编辑 /etc/ssh/sshd_config 文件:
sudo nano /etc/ssh/sshd_config
以下是几个关键配置项的说明和建议修改:
| 配置项 | 默认值 | 建议修改 | 说明 |
|---|---|---|---|
| Port 22 | 可以修改为其他端口(如2222) | 增加安全性,避免默认端口被扫描 | 端口号范围建议1024-65535 |
| PermitRootLogin yes | 建议改为 no |
禁止root用户直接登录,改用普通用户sudo提权 | 提升系统安全性 |
| PasswordAuthentication yes | 可根据需求改为 no |
结合密钥认证时关闭密码登录 | 强制使用密钥认证更安全 |
| AllowUsers | 默认为空 | 可添加允许登录的用户名(如 AllowUsers user1 user2) |
限制特定用户访问 |
修改完成后,保存文件并重启SSH服务使配置生效:
sudo systemctl restart ssh
如果系统开启了防火墙(如UFW),需要允许SSH端口通过,允许默认的22端口:
sudo ufw allow 22
如果修改了SSH端口(如2222),则需执行:
sudo ufw allow 2222
启用防火墙:
sudo ufw enable
您可以从其他设备使用SSH客户端连接到Ubuntu服务器,在Linux或macOS上使用 ssh username@ubuntu_ip 命令,或在Windows上使用PuTTY等工具,首次连接时,系统会提示确认主机密钥,输入“yes”即可。
相关问答FAQs
Q1: 如何更改SSH服务的默认端口?
A1: 编辑 /etc/ssh/sshd_config 文件,找到 Port 22 一行,将其修改为其他端口(如 Port 2222),保存后重启SSH服务(sudo systemctl restart ssh),确保防火墙允许新端口的访问(如 sudo ufw allow 2222),连接时需指定新端口,ssh -p 2222 username@ubuntu_ip。
Q2: 忘记SSH密码或无法登录怎么办?
A2: 如果无法通过SSH登录,可尝试以下方法:
- 检查SSH服务状态(
sudo systemctl status ssh),确保服务正常运行。 - 确认防火墙规则未阻止SSH端口(
sudo ufw status)。 - 如果是密码问题,可通过控制台或VNC登录服务器后,重置用户密码或检查
/etc/ssh/sshd_config中的PasswordAuthentication设置。 - 若配置错误导致无法登录,可进入恢复模式,卸载SSH服务器(
sudo apt purge openssh-server)后重新安装。
