很多新手朋友登录服务器,还是习惯用用户名密码,我用了这么多年服务器,一直都是用SSH密钥登录,聊聊为什么推荐你也这么用。
什么是SSH密钥登录?
简单说就是生成一对钥匙:一个公钥放服务器上,一个私钥你自己存在本地。登录的时候用这一对钥匙验证,不用输密码。
比密码好在哪里?
1. 更安全
密码不管你设得多复杂,都有可能被暴力破解。密钥是一长串加密字符,暴力破解根本不可能,只要你私钥不丢,基本没人能破。服务器开在公网上,用密钥登录能挡住绝大多数暴力破解,安全很多。
2. 更方便
你配置好了之后,登录服务器不用每次输密码,直接 ssh server 就进去了,特别是你经常要登录不同服务器,太方便了,省了好多输密码的时间。
3. 可以禁用root密码登录
配置好密钥之后,你完全可以禁用root用户的密码登录,就算密码泄露了,别人也登不进来,安全性又上一个台阶。
新手怎么配置?
其实很简单,几步就搞定:
1. 本地生成密钥对
ssh-keygen -t ed25519
一路回车就行,不用设密码(当然你想设也可以,设了每次登录要输密码,麻烦一点但更安全)
2. 把公钥传到服务器
ssh-copy-id user@your-server-ip
输一次密码,就传好了。
3. 测试登录
ssh user@your-server-ip
应该不用输密码就直接进去了,搞定。
4. (可选)禁用密码登录
编辑服务器上 /etc/ssh/sshd_config,改这两行:
PasswordAuthentication no PermitRootLogin prohibit-password
保存,重启ssh服务:
systemctl restart sshd
好了,现在只能密钥登录,密码登录禁用了,安全多了。
几个注意事项
- 私钥一定要保管好,别丢了,丢了你就登不进去了,最好备份一份
- 不要把私钥放到公共仓库,这个是常识,但是总有人不小心放进去
- 如果你经常在不同机器登录,每个机器都应该用自己的私钥,不要共用
总结
SSH密钥登录真的是用了就回不去了,更安全更方便,为什么不用呢?新手花五分钟配置一下,一劳永逸,推荐大家都配上。
你现在用密码还是密钥登录?欢迎留言聊聊。
新手入门向,老司机应该早就这么用了😂