Linux 服务器开通后,很多用户会直接使用默认用户名、默认密码或默认 SSH 端口登录。虽然这样使用方便,但安全性较低,容易被恶意扫描和暴力破解。为了提升服务器安全性,建议及时修改 Linux 登录用户名、设置复杂密码,并更换默认 SSH 端口。

本文将介绍 Linux 系统中修改用户名、密码和 SSH 端口的方法,适用于 Ubuntu、Debian、CentOS、Rocky Linux、AlmaLinux 等常见服务器系统。

image

一、修改前的准备工作

在修改 Linux 用户名、密码和端口之前,建议先完成以下准备:

  • 确保当前账号拥有 root 权限或 sudo 权限。
  • 不要关闭当前 SSH 连接窗口,防止配置错误后无法重新登录。
  • 修改 SSH 端口前,必须先在防火墙和云服务器安全组中放行新端口。
  • 建议提前备份 SSH 配置文件。
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

如果修改失败,可以通过备份文件恢复原来的配置。

二、查看当前 Linux 用户

修改用户名之前,可以先查看当前登录用户:

whoami

查看系统中已有用户:

cat /etc/passwd

普通服务器一般会使用 root、ubuntu、debian、admin 等用户登录。为了安全起见,可以创建一个新的管理用户,避免长期直接使用 root 登录。

三、修改 Linux 用户名

如果需要把旧用户名修改为新用户名,可以使用 usermod 命令。例如,把旧用户 olduser 修改为 newuser

usermod -l newuser olduser

如果还需要同步修改用户主目录,可以继续执行:

usermod -d /home/newuser -m newuser

如果用户组名称也需要修改,可以执行:

groupmod -n newuser olduser

需要注意的是,不能在当前正在登录的用户会话中直接修改该用户名称。建议使用 root 用户或另一个具有 sudo 权限的账号进行操作。

四、创建新的 Linux 管理用户

相比直接修改旧用户名,更推荐创建一个新的管理用户。例如创建用户 serveradmin

adduser serveradmin

然后给该用户添加 sudo 权限:

Ubuntu / Debian 系统:

usermod -aG sudo serveradmin

CentOS / Rocky Linux / AlmaLinux 系统:

usermod -aG wheel serveradmin

添加完成后,可以使用新用户重新登录服务器,确认权限是否正常。

五、修改 Linux 用户密码

修改当前用户密码,可以直接执行:

passwd

修改指定用户密码,例如修改 serveradmin 的密码:

passwd serveradmin

系统会要求输入两次新密码。建议密码包含大写字母、小写字母、数字和特殊符号,长度不少于 12 位。

示例密码格式:

k9V#pQ7mT2@zR6xL

不要使用生日、手机号、域名、简单数字或常见弱密码,例如 123456、password、admin888 等。

六、登录 Linux 服务器

在修改用户名、密码和 SSH 端口之前,需要先通过 SSH 登录服务器。如果服务器当前 SSH 端口不是默认的 22,而是其他端口,例如 16648,可以使用下面的命令登录:

ssh -p 16648 root@服务器IP

例如:

ssh -p 16648 root@168.210.31.144

执行命令后,系统会提示输入密码,输入服务器 root 密码后即可登录。输入密码时,终端不会显示任何字符,这是正常现象。

登录成功后,建议不要关闭当前窗口,后面修改 SSH 端口时可以保留当前连接,避免新端口配置错误导致无法重新登录。

七、修复 passwd 命令权限并修改密码

正常情况下,修改 root 密码只需要执行:

passwd

然后根据提示输入两次新密码即可。

如果服务器之前被错误设置过权限,导致 passwd 命令无法正常使用,可以先修复 /usr/bin/passwd 的权限。

chattr -i /usr/bin/passwd
chmod 4755 /usr/bin/passwd
ls -l /usr/bin/passwd
passwd

命令说明:

  • chattr -i /usr/bin/passwd:取消 passwd 文件的不可修改属性。
  • chmod 4755 /usr/bin/passwd:恢复 passwd 命令的正确执行权限。
  • ls -l /usr/bin/passwd:查看 passwd 文件权限是否正常。
  • passwd:开始修改当前用户密码。

执行 passwd 后,系统会提示输入新密码。输入密码时不会显示字符,输入完成后按回车,再重复输入一次即可。

建议新密码包含大写字母、小写字母、数字和特殊符号,长度不少于 12 位,避免使用简单密码。

八、一键修改 SSH 端口

修改 Linux SSH 端口时,可以使用下面的一键命令。把 NEWPORT=48372 中的 48372 替换成自己想要设置的新端口。

例如要把 SSH 端口修改为 48372,可以执行:

NEWPORT=48372;
 ufw allow ${
NEWPORT
}
/tcp 2>/dev/null || true;
 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F-%H%M%S);
 if grep -qE '^[# ]*Port ' /etc/ssh/sshd_config;
 then sed -i -E "s/^[# ]*Port .*/Port ${NEWPORT}/" /etc/ssh/sshd_config;
 else echo "Port ${NEWPORT}" >> /etc/ssh/sshd_config;
 fi;
 sshd -t && systemctl restart ssh

这条命令会自动完成以下操作:

  • 设置新的 SSH 端口变量。
  • 使用 UFW 放行新端口。
  • 备份 SSH 配置文件。
  • 修改 /etc/ssh/sshd_config 中的 Port 配置。
  • 检查 SSH 配置是否正确。
  • 重启 SSH 服务。

注意:这条命令是修改 SSH 端口,不是修改密码。密码需要通过 passwd 命令单独修改。

九、分步修改 SSH 端口

如果担心一键命令出错,也可以使用分步操作。下面以修改 SSH 端口为 31694 为例。

1. 设置新端口变量

NEWPORT=31694

2. 放行新端口

ufw allow ${NEWPORT}/tcp

如果服务器没有启用 UFW,这一步可能不会生效,但不会影响后续 SSH 配置修改。云服务器还需要在安全组中放行这个新端口。

3. 备份 SSH 配置文件

cp /etc/ssh/sshd_config /root/sshd_config.bak

备份文件可以用于后续恢复,避免修改错误后无法找回原配置。

4. 删除旧的 Port 配置

sed -i '/^[# ]*Port /d' /etc/ssh/sshd_config

这一步会删除 SSH 配置文件中原来的 Port 配置,避免出现多个端口配置造成混乱。

5. 写入新的 SSH 端口

echo "Port ${NEWPORT}" >> /etc/ssh/sshd_config

6. 检查 SSH 配置是否正确

/usr/sbin/sshd -t

如果没有任何错误提示,说明 SSH 配置语法正常。

7. 重启 SSH 服务

systemctl restart ssh

部分系统的 SSH 服务名称可能是 sshd,如果上面的命令无法执行,可以使用:

systemctl restart sshd

8. 查看当前 SSH 端口配置

grep -nE '^Port ' /etc/ssh/sshd_config

如果输出类似下面内容,说明端口已经写入成功:

Port 31694

十、使用新端口重新登录测试

修改完成后,不要立刻关闭当前 SSH 窗口。请重新打开一个新的终端窗口,使用新端口测试登录:

ssh -p 31694 root@服务器IP

如果可以成功登录,说明新的 SSH 端口已经生效。

确认新端口可以正常使用后,再考虑关闭旧端口或者删除旧端口的安全组规则。

十一、修改 SSH 端口的注意事项

  • 修改 SSH 端口之前,一定要先放行新端口。
  • 云服务器安全组也必须放行新端口。
  • 不要关闭当前已登录的 SSH 窗口。
  • 执行 sshd -t 检查通过后,再重启 SSH 服务。
  • 确认新端口可以登录后,再关闭旧端口。
  • 端口建议使用 10000 到 65535 之间的高位端口。

修改 SSH 端口只能减少自动扫描和暴力破解,并不能完全保证服务器安全。建议同时配合复杂密码、普通用户登录、关闭 root 远程登录、SSH 密钥登录等方式提升服务器安全性。

十二、Linux 服务器 SSH 安全建议

除了修改用户名、密码和 SSH 端口,还建议进行以下安全设置:

  • 使用复杂密码,避免弱密码。
  • 尽量使用普通用户登录,再通过 sudo 管理服务器。
  • 关闭 root 远程登录。
  • 限制 SSH 登录失败次数。
  • 定期更新系统安全补丁。
  • 只开放必要端口,不使用的端口及时关闭。
  • 重要服务器建议使用 SSH 密钥登录。

关闭 root 远程登录,可以编辑:

vi /etc/ssh/sshd_config

找到或添加以下配置:

PermitRootLogin no

修改完成后检查配置并重启 SSH:

sshd -t
systemctl restart ssh

如果是 CentOS 系统,则可能需要执行:

systemctl restart sshd

十三、常见问题

1. 修改 SSH 端口后连接不上怎么办?

一般是新端口没有放行、防火墙规则错误、安全组没有开放,或者 SSH 配置写错。可以通过云服务器控制台的 VNC、救援模式或控制台终端进入服务器修复。

2. 修改用户名后无法登录怎么办?

可能是用户主目录、用户组或 sudo 权限没有同步修改。建议优先使用创建新用户的方式,不建议直接修改正在使用的用户名。

3. SSH 端口是不是越复杂越安全?

修改默认端口可以减少大量自动扫描,但不能完全代替密码安全和系统安全。真正安全的做法是复杂密码、密钥登录、防火墙限制和定期维护。

4. 可以只修改密码不改端口吗?

可以,但如果服务器长期暴露在公网,建议同时修改 SSH 端口,并关闭不必要的服务端口。

十四、总结

Linux 修改用户名、密码和 SSH 端口是服务器安全加固中非常基础但重要的一步。正确的操作顺序应该是:先创建或修改用户,再设置复杂密码,然后放行新 SSH 端口,最后修改 SSH 配置并重启服务。

操作过程中一定要注意,不要关闭当前 SSH 连接窗口,确认新端口可以正常登录后,再删除旧端口规则。这样可以有效避免服务器无法连接的问题。

对于新购买的 Linux VPS 或云服务器,建议开通后第一时间完成这些安全设置,降低被扫描、暴力破解和非法登录的风险。