服务器资讯

新手配置SSH远程登录的5个基础步骤

本文以 Ubuntu Server 和 Windows 11 客户端为例,说明 SSH 远程登录配置的五个基础步骤,涵盖网络确认、服务安装、密钥登录、参数调整与故障排查,帮助新手建立更安全、可验证的远程管理入口。

第一次管理云服务器或家中的测试主机时,最容易卡在“服务没启动”“端口未放行”和“密钥位置错误”这三个环节。下面以 Ubuntu Server 24.04 服务器、Windows 11 的 Windows Terminal 为例,完成一套可复现的 SSH远程登录配置。不同发行版的服务名称和防火墙命令可能略有差异,执行前应确认系统版本,并保留云控制台或本地终端作为备用入口。

一、确认服务器与网络条件

先确认服务器已经联网,并记录可访问的地址。云主机通常使用公网地址,家庭设备则可能处于路由器内网,直接连接内网地址往往只能在同一局域网内生效。服务器端执行 hostname -I 可查看网卡地址,执行 ip route 可确认默认路由。

在 Windows 客户端先测试目标端口是否可达:Test-NetConnection 服务器地址 -Port 22。如果显示失败,不要急着修改密钥,应先检查云平台安全组、路由器端口映射和主机防火墙。网络层不通时,后续的 SSH远程登录配置不会生效。

二、安装并启动 SSH 服务

Ubuntu Server 通常使用 OpenSSH 服务端。通过服务器本地控制台执行以下步骤:

新手配置SSH远程登录的5个基础步骤
  1. 更新软件索引:sudo apt update
  2. 安装服务端:sudo apt install openssh-server
  3. 立即启动并设置开机启动:sudo systemctl enable --now ssh
  4. 检查运行状态:sudo systemctl status ssh

看到服务处于 active 状态后,再检查监听情况:sudo ss -lntp | grep ssh。默认端口通常是 22,但如果管理员已经指定其他端口,应以实际配置为准,不要凭经验重复开放端口。

三、创建专用账号并配置密钥

不建议长期使用 root 直接登录。可以为日常维护创建独立账号,例如:

sudo adduser operator

如果该账号需要执行少量管理命令,再按实际职责加入管理员组:sudo usermod -aG sudo operator。权限越大,越应限制使用范围,并在人员变动时及时删除账号或撤销密钥。

在客户端生成密钥

Windows Terminal 执行 ssh-keygen -t ed25519,一路确认保存位置即可,也可以设置一个便于区分用途的文件名。生成后会得到私钥和公钥,私钥只保存在个人设备上,不要上传到服务器、聊天工具或代码仓库。

把公钥写入服务器账号的授权文件,可在客户端执行 type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh operator@服务器地址 "umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys"。如果客户端没有该命令,也可以复制公钥内容,通过服务器控制台写入 ~/.ssh/authorized_keys,再确认目录和文件仅由该账号管理。

四、调整服务端参数

编辑 /etc/ssh/sshd_config,先备份原文件:sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak。完成密钥测试后,可考虑设置以下选项:

  • PermitRootLogin no:禁止 root 直接远程登录。
  • PasswordAuthentication no:确认密钥登录成功后,再关闭密码登录。
  • PubkeyAuthentication yes:允许公钥认证。

修改后先检查语法:sudo sshd -t。没有输出通常表示语法检查通过,随后执行 sudo systemctl reload ssh。不要在唯一远程会话中贸然关闭密码认证,必须先用新窗口验证密钥,否则可能把自己锁在服务器外。

五、测试登录并建立排错顺序

在 Windows 客户端新开终端,执行 ssh operator@服务器地址。首次连接会提示确认主机指纹,只有在地址和指纹来源可靠时才接受。成功进入后,可执行 whoamihostname,确认登录的是预期账号与主机。

如果连接被拒绝,按“网络、端口、服务、账号、密钥”的顺序排查:先重新运行 Test-NetConnection,再检查安全组和防火墙;接着查看 sudo systemctl status ssh;最后确认公钥完整、账号名称正确,并检查服务器上的 ~/.ssh/authorized_keys 是否属于目标账号。Linux 主机还可以使用 sudo journalctl -u ssh 查看服务记录。客户端增加 -v 参数,可观察认证进行到哪一步。

完成 SSH远程登录配置后,建议保留一条经过验证的备用通道,并记录账号、授权范围、密钥持有人和回收时间。远程入口并非配置一次就结束,密钥轮换、账号清理和登录记录检查同样重要。

常见问题

1. 为什么能 ping 通却无法登录?

Ping 只说明某种网络层通信可达,不代表 SSH 端口开放。应使用 Test-NetConnection 或其他端口测试,并检查服务状态与防火墙规则。

2. 私钥文件能否直接发给同事?

不建议。私钥相当于登录凭据,应由每位使用者单独生成公钥,并把各自公钥加入授权文件,人员离开时只需删除对应公钥。

3. 关闭密码登录后还能恢复吗?

可以通过云控制台、串行终端或其他受控入口修改配置。正式关闭前必须验证新密钥,并保留可用的恢复路径。

4. 是否必须更换默认端口?

不一定。更换端口只能减少部分自动化扫描,不能替代密钥认证、最小权限、防火墙限制和日志审计。