
刚拿到手的热乎服务器,是不是已经摩拳擦掌准备大干一场了?先冷静一下! 就像你拿到新家钥匙,第一件事是赶紧换个靠谱的锁芯一样,新服务器到手,首要任务,也是最重要的任务,就是加固你的登录“大门”。
很多服务商给的初始密码可能是弱密码,或者干脆就是你设置的一个可能不够强的密码。如果这个密码被猜到或暴力破解,那你的服务器就成了别人的“肉鸡”,后果不堪设想。所以,别偷懒,跟我一起动手,给你的服务器上把“金刚锁”!
第一道防线:跟默认/初始密码说拜拜!
不管服务商给你的是默认密码,还是你自己设置的初始密码,或者是通过cloud-init
首次登录后需要改的密码,立刻修改掉它!
1 登录你的服务器: 通常使用SSH客户端(如PuTTY, Terminal, Xshell等)通过服务商提供的IP地址和初始密码登录。假设用户名是root
(有些服务商可能是ubuntu
, admin
等,请根据实际情况调整):
Bash
ssh root@<你的服务器IP地址>
然后输入你的初始密码。
2修改密码: 登录成功后,立刻使用 passwd
命令修改当前用户的密码。
如果你是以普通用户(比如ubuntu
)登录,且该用户有sudo
权限,你可以修改自己的密码:
Bash
passwd
或者修改root
用户的密码(如果允许root登录的话,但不推荐直接用root):
Bash
sudo passwd root
如果你是以root
用户登录的,直接输入: Bashpasswd
系统会提示你输入当前密码(如果是第一次修改可能不需要),然后输入新密码,再确认新密码。
3设置强密码:
敲黑板! 你的新密码一定要强!多强?
- 长度足够: 至少12位以上。
- 复杂度: 包含大写字母、小写字母、数字、特殊符号(如!@#$%^&*)。
- 无规律: 不要用生日、姓名拼音、电话号码、”password123″、”adminadmin”这种“裸奔”密码!
- 唯一性: 不要和其他账号使用相同的密码。
- 可以借助密码生成器创建一个随机强密码,然后用密码管理器(如KeePass, Bitwarden)保存好。
修改完密码,至少你的第一道门槛加高了。但这还不够,我们还有更安全的玩法。
升级防护:配置SSH密钥登录(强烈推荐!)
密码总有被猜到或暴力破解的风险,而SSH密钥对提供了一种更安全、更便捷的登录方式。
- 为啥用密钥? 简单说,它用一对密钥(一个私钥,一个公钥)来验证身份。私钥由你绝对保管在本地电脑上,公钥放在服务器上。登录时,服务器用公钥验证你是否持有对应的私钥,验证通过才允许登录。这个过程不传输密码,私钥本身极长且复杂,几乎不可能被暴力破解。
- 原理小课堂: 你用本地电脑上的私钥对一个服务器发来的“挑战”信息进行签名,服务器收到后用预存的公钥来验证这个签名是否正确。正确就放行!
配置步骤:
Step 1: 在你的本地电脑生成密钥对
打开你本地电脑的终端(Linux/macOS Terminal, Windows上的Git Bash或WSL)。执行以下命令:
Bash
ssh-keygen -t rsa -b 4096
-t rsa
: 指定密钥类型为RSA(常用且兼容性好)。也可以用更现代的-t ed25519
。-b 4096
: 指定密钥长度为4096位(RSA类型下,推荐长度,非常安全)。
过程中会提示:
- 保存位置:
Enter file in which to save the key (/home/your_local_user/.ssh/id_rsa):
直接按Enter使用默认路径即可(通常是用户主目录下的.ssh
文件夹里的id_rsa
和id_rsa.pub
)。 - 输入密码短语 (Passphrase):
Enter passphrase (empty for no passphrase):
强烈建议设置一个密码短语! 这相当于给你的私钥文件加了个密码。即使私钥文件泄露,没有这个短语也无法使用。输入两次以确认。当然,如果你追求极致便利且确保私钥文件绝对安全,可以留空(不推荐)。
成功后,你会在 ~/.ssh/
目录下看到两个文件:id_rsa
(私钥,绝不能泄露!)和 id_rsa.pub
(公钥,可以安全地分享和上传)。
Step 2: 把公钥上传到服务器
需要将本地 id_rsa.pub
文件里的内容添加到服务器上你希望登录的用户的 ~/.ssh/authorized_keys
文件中。
方法一:使用 ssh-copy-id
(最简单,推荐!) 如果你的本地电脑支持 ssh-copy-id
命令,并且服务器当前还允许密码登录,这是最方便的方法:
Bash
ssh-copy-id <服务器用户名>@<你的服务器IP地址>
# 例如: ssh-copy-id root@123.45.67.89
# 如果你生成密钥时指定了其他文件名,用 -i 参数指定公钥路径:
# ssh-copy-id -i ~/.ssh/my_custom_key.pub user@server_ip
输入该用户的密码后,命令会自动帮你完成公钥上传和权限设置。
方法二:手动复制粘贴 (如果无法使用 ssh-copy-id
或已禁用密码登录)
1.在本地电脑上显示并复制公钥内容:
Bash
cat ~/.ssh/id_rsa.pub
选中并完整复制输出的所有内容(通常以 ssh-rsa
或 ssh-ed25519
开头,以你的邮箱或用户名结尾)。
2.登录服务器 (使用你刚改好的密码)。
3.在服务器上操作:
Bash
# 确保 .ssh 目录存在且权限正确
mkdir -p ~/.ssh
chmod 700 ~/.ssh
# 将你复制的公钥内容粘贴到 authorized_keys 文件末尾
# 如果文件不存在,这条命令会自动创建
echo "粘贴你复制的公钥内容到这里" >> ~/.ssh/authorized_keys
# 确保 authorized_keys 文件权限正确
chmod 600 ~/.ssh/authorized_keys
# (可选,如果你的系统启用了SELinux且遇到问题)恢复SELinux安全上下文
# restorecon -Rv ~/.ssh
注意: 权限设置 (chmod 700
for .ssh
, chmod 600
for authorized_keys
) 至关重要!权限不对会导致密钥登录失败。
Step 3: 测试密钥登录
现在,从你的本地电脑再次尝试SSH登录:
Bash
ssh <服务器用户名>@<你的服务器IP地址>
- 如果你的私钥设置了密码短语 (Passphrase),系统会提示你输入密码短语。
- 如果私钥没有密码短语,或者输入正确短语后,你应该能直接登录成功,不再需要输入服务器密码。
如果仍然提示输入服务器密码,说明配置有误。请仔细检查服务器上 ~/.ssh/authorized_keys
文件的内容是否正确(公钥有没有复制全?有没有多余的换行?)、文件和目录权限是否是 600
和 700
。
终极加固:禁用密码登录 (可选但强烈推荐!)
警告: 在执行此步骤前,务必反复确认你的SSH密钥登录完全正常可用! 否则一旦禁用密码登录,你可能就再也登不上服务器了(除非通过服务商的VNC/控制台救援)。
确认无误后,进行以下操作:
1.编辑SSH服务配置文件:
Bash
sudo nano /etc/ssh/sshd_config
2.找到并修改以下行的配置:
(可选)确保 PubkeyAuthentication yes
是启用的(通常默认是)。
将 #PasswordAuthentication yes
或 PasswordAuthentication yes
修改为 PasswordAuthentication no
(确保前面的 #
去掉)。
(可选但推荐)将 #ChallengeResponseAuthentication yes
或 ChallengeResponseAuthentication yes
修改为 ChallengeResponseAuthentication no
。
3.保存并退出编辑器。
4.检查配置文件语法是否正确:
Bash
sudo sshd -t
如果没有报错,说明配置没问题。
5.重启SSH服务使配置生效:
Bash
sudo systemctl restart sshd # 或者 sudo systemctl restart ssh (取决于系统)
现在,尝试用密码方式SSH登录你的服务器,应该会被拒绝。只有通过你设置好的SSH密钥才能登录了。这极大地提高了服务器的安全性,让那些企图用弱密码或暴力破解方式入侵的黑客无功而返。
好了!至此,你已经完成了新服务器最基础也是最关键的两项安全设置:修改初始密码和配置SSH密钥登录。这相当于给你的服务器装上了一把高强度防盗门锁。虽然服务器安全是一个持续性的工作,但这绝对是一个坚实的开始。
[…] 《新服务器安全第一步:修改默认密码与设置SSH密钥登录》 […]