云服务器到手先做这件事:SSH 密钥登录设置与三个安全习惯
买好云服务器、第一次用 SSH 连上去之后,很多人就直接开始装软件了。但我的习惯是先花十分钟把登录这件事处理好:公网上的服务器从第一天就会被自动化程序扫描,弱密码被撞开只是时间问题。这篇记录我自己的设置顺序,都是基础动作,但顺序不能反。
一、先生成密钥对,私钥只留在自己电脑上
在本地电脑上生成一对密钥(以常见的 Ed25519 为例):
ssh-keygen -t ed25519 -C "my-server"
生成的两个文件里,.pub 是公钥,可以放心上传到服务器;没有扩展名的那个是私钥,只留在本地、不要传给任何人,也不要放进任何网盘或聊天窗口。给私钥再设一个口令短语,等于多加一层锁。
二、把公钥装到服务器上,并先验证能登录
趁密码登录还开着,把公钥写进服务器的授权文件:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@服务器IP
如果本地没有 ssh-copy-id,也可以手动把公钥内容追加到服务器的 ~/.ssh/authorized_keys。装完先不要关密码登录,开一个新的终端窗口,用密钥试登录一次:
ssh -i ~/.ssh/id_ed25519 user@服务器IP
确认密钥能正常登进去,再做下一步。这一步是整个流程最重要的一道保险:先验证新路能走,再关旧路。
三、确认密钥可用后,再关掉密码登录
编辑服务器上的 /etc/ssh/sshd_config,把这两项改掉:
PasswordAuthentication no
PubkeyAuthentication yes
改完先检查配置语法再重载服务,不要直接断开当前会话:
sudo sshd -t
sudo systemctl reload sshd
sshd -t 没有输出代表语法没问题。如果语法写错就重载,服务起不来又断了会话,是新手最容易把自己锁在门外的情况,所以当前窗口保持连接,另开窗口验证新设置生效后再退出。
四、另外两个顺手养成的习惯
习惯一:安全组只开需要的端口。 SSH 的 22 端口和网站的 80/443 之外,其他端口默认不开。需要临时调试的端口,用完就关,不要想着「先全开着,以后再收」。
习惯二:系统更新别拖。 每隔一段时间执行一次系统更新,把安全补丁装上。服务器长期在线,被利用的往往不是高深的技术,而是几个月没打的已知漏洞。
习惯三(可选):改 SSH 端口只能减少噪音,不能代替密钥。 把 22 改成其他端口,登录日志确实会清净很多,但这只是减少扫描噪音,安全性还是来自密钥本身,不要改完端口就放心继续用弱密码。
小结
顺序总结起来就是四步:本地生成密钥、上传公钥、新窗口验证能登录、最后才关密码登录。核心原则只有一个:永远先验证新路走得通,再关掉旧路。这样设置完,日常登录反而更省事,一条命令就进去,安全也比密码时代扎实得多。
- 点赞
- 收藏
- 关注作者
评论(0)