Linux 修改用户名、密码和 SSH 端口教程,提升服务器登录安全
Linux 服务器开通后,很多用户会直接使用默认用户名、默认密码或默认 SSH 端口登录。虽然这样使用方便,但安全性较低,容易被恶意扫描和暴力破解。为了提升服务器安全性,建议及时修改 Linux 登录用户名、设置复杂密码,并更换默认 SSH 端口。
本文将介绍 Linux 系统中修改用户名、密码和 SSH 端口的方法,适用于 Ubuntu、Debian、CentOS、Rocky Linux、AlmaLinux 等常见服务器系统。
一、修改前的准备工作
在修改 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 或云服务器,建议开通后第一时间完成这些安全设置,降低被扫描、暴力破解和非法登录的风险。