Debian/Ubuntu 初始设置:SSH、软件更新、时间与主机名
本文整理 Debian/Ubuntu 安装后的常用管理步骤,适用于使用 systemd 的主机。各节按需要选择;软件清理、远程登录和时间设置不等于内核或网络性能调优。通过 SSH 操作时保留当前会话,确认新连接可用后再退出。
系统下载
下载前核对 CPU 架构、镜像类型及发行版支持周期。安装后可用 cat /etc/os-release 和 uname -m 确认系统与架构。
开启 SSH 远程登录
安装网络与 SSH 工具
sh
sudo apt update
sudo apt install openssh-server iproute2iproute2 提供 ip、ss 等工具;只有旧脚本明确依赖 ifconfig、netstat 时,才另装 net-tools。
验证 SSH 服务与监听
sh
dpkg-query -W openssh-server
systemctl status ssh.service ssh.socket --no-pager
sudo ss -lntp包查询只能证明是否安装。结合服务状态、监听端口和实际连接确认是否可用:部分系统由 ssh.socket 按需启动服务,未安装的 socket 单元也可能显示找不到,不能仅凭一个单元的状态判断 SSH 失败。
如果主机采用普通 ssh.service 且尚未启动,可按需执行:
sh
sudo systemctl enable --now ssh.service再从另一台设备用实际用户名、服务器地址和端口连接。连接超时还要检查云安全组、主机防火墙和路由;无需为测试开放所有端口。
安装 nano 和 htop
sh
sudo apt install nano htopnano 中按 Ctrl+O、回车保存,Ctrl+X 退出;它不使用 Vim 的 i、:wq 操作。htop 是交互式进程查看器,按 q 退出。
按需删除预装软件
先查看确实不用的软件包,并模拟移除,例如:
sh
apt list --installed
apt -s remove thunderbird确认模拟结果没有带走所需桌面、网络或远程管理组件后,才执行对应的 sudo apt remove thunderbird。remove 通常保留系统级配置,purge 还会移除包管理器跟踪的配置文件;不应照搬其他发行版的一整组软件名。
更新软件与清理无用依赖
sh
sudo apt update
sudo apt upgrade
apt -s autoremoveupdate 刷新包索引;upgrade 升级已安装的软件包。检查最后一条列出的候选依赖,确认不用后再运行 sudo apt autoremove。不要在未检查列表时添加自动确认参数。
评估是否移除桌面环境
服务器镜像通常无需安装桌面。已经安装桌面的系统,先确认用途、显示管理器与桌面元包;云控制台恢复路径和 SSH 也应可用。以 GNOME 为例,可以先查看模拟结果:
sh
apt -s remove gnome-shell这只是单个软件包的模拟,并不保证完整卸载某一发行版的桌面。Ubuntu、Debian 及不同安装任务使用的元包不同,应按实际包清单制定移除范围。若仍需本地图形登录,保留桌面即可;移除桌面不是初始设置的必要步骤。
同步时间
检查已有时间同步服务
sh
timedatectl status
systemctl status systemd-timesyncd.service chrony.service --no-pager使用实际已安装的服务;未安装的单元显示找不到属于正常情况。主机通常只需一个时间同步客户端,不必额外安装并定时执行 ntpdate。
启用网络时间同步
如果系统已有可用的时间同步服务,可通过以下命令启用并检查:
sh
sudo timedatectl set-ntp true
timedatectl status若提示不支持或没有可用服务,应按发行版配置 systemd-timesyncd 或 Chrony;不要将命令返回成功等同于已经完成同步。查看同步状态、服务日志与配置的时间源是否可达。
需要北京时间显示时,可单独设置时区:
sh
sudo timedatectl set-timezone Asia/Shanghai时区控制显示方式,与系统是否准确同步是两件事。
硬件时钟的处理
正常运行的时间同步服务和系统关机流程通常会处理时钟,无需每次手工写入硬件时钟。虚拟机或容器可能没有可访问的 RTC。确有硬件时钟维护需求时,先确认系统时间准确,再依据宿主机和双系统约定处理 UTC/本地时间,不将 hwclock --systohc 作为所有服务器的固定步骤。
修改主机名
将 my-server 替换为目标名称:
sh
sudo hostnamectl set-hostname my-server
hostnamectl status
hostname同时检查 /etc/hosts 是否有旧主机名对应的记录,按实际地址更新名称,保留 localhost 等基础记录。新主机名立即生效,当前终端提示符可能在新会话中才更新,无需为此重启。
管理员权限与 Root 远程登录
日常管理优先使用普通账号加 sudo。Root 的本地密码、能否使用 sudo、能否通过 SSH 登录,是不同设置;安装系统后不需要默认开启 root 密码远程登录。
临时取得管理员权限
sh
sudo -i完成需要管理员权限的工作后运行 exit 返回普通用户。此操作不需要修改 root 密码,也不会自动开放 root 的 SSH 登录。
修改与检查 SSH 配置
先在第二个会话验证普通管理员账号及其密钥能登录,再调整认证策略。编辑配置前备份:
sh
sudo cp -a /etc/ssh/sshd_config "/etc/ssh/sshd_config.backup.$(date +%Y%m%d%H%M%S)"
sudo nano /etc/ssh/sshd_config例如,确认普通管理员账号可用后,可禁止 root 远程登录:
text
PermitRootLogin no只有已经验证密钥登录、且不再依赖密码登录时,才考虑将 PasswordAuthentication 设为 no。配置可能还包含 Include 文件与 Match 条件;不能假设文件末尾追加一行就一定覆盖先前值。OpenSSH 配置说明
应用配置并验证新连接
sh
sudo /usr/sbin/sshd -t
sudo /usr/sbin/sshd -T | grep -E 'permitrootlogin|passwordauthentication|pubkeyauthentication'只有语法检查通过后才应用。上述有效配置输出未指定连接条件;若使用了 Match,还需结合目标用户和来源地址核对。对这里的认证配置变更,在普通服务运行方式下可执行:
sh
sudo systemctl reload ssh.service保留旧会话,使用新会话重新验证登录与 sudo。如果使用 socket 激活或更改了监听地址、端口,应按该发行版的 SSH 单元配置处理;认证配置更新不需要重启整台服务器。