告别密码登录:SSH 密钥登录 Linux 服务器入门

举报
yd_275127495 发表于 2026/10/26 06:05:15 2026/10/26
【摘要】 刚拿到一台云服务器,很多人第一件事就是用密码 SSH 登录。密码登录简单,但也最容易被盯上:互联网上每天都有自动化程序拿着常见密码字典扫 22 端口,弱密码迟早会被撞开。换成密钥登录后,登录凭据变成一对数学上绑定的密钥,暴力破解基本失去意义,而且日常使用反而更方便,不用每次敲密码。第一步:在自己的电脑上生成密钥对。命令:ssh-keygen -t ed25519 -C "my-laptop"...

刚拿到一台云服务器,很多人第一件事就是用密码 SSH 登录。密码登录简单,但也最容易被盯上:互联网上每天都有自动化程序拿着常见密码字典扫 22 端口,弱密码迟早会被撞开。换成密钥登录后,登录凭据变成一对数学上绑定的密钥,暴力破解基本失去意义,而且日常使用反而更方便,不用每次敲密码。
第一步:在自己的电脑上生成密钥对。命令:ssh-keygen -t ed25519 -C "my-laptop"。一路回车会得到两个文件:私钥 ~/.ssh/id_ed25519 和公钥 ~/.ssh/id_ed25519.pub。私钥相当于家门钥匙,绝不能发给别人、不能贴到聊天记录或代码仓库里;公钥相当于门锁,可以放心交给服务器。如果电脑是多人共用,建议给私钥设一个口令短语,多一层保护。
第二步:把公钥传到服务器上。最省事的是用系统自带的工具,一条命令完成复制和权限设置:ssh-copy-id -i ~/.ssh/id_ed25519.pub user@服务器IP。它会把公钥追加到服务器 ~/.ssh/authorized_keys 里。传完先别急着关当前窗口,另开一个终端测试密钥登录是否成功,确认能进再动下一步——这是避免把自己锁在门外的关键习惯。
第三步:关掉密码登录。确认密钥能登录后,编辑服务器上的 SSH 配置 /etc/ssh/sshd_config,把 PasswordAuthentication 和 ChallengeResponseAuthentication 改成 no,然后用 sshd -t 检查配置语法,没报错再重启服务。改完之后,密码登录通道就关了,即使密码泄露,攻击者没有私钥也进不来。注意先确认自己确实有可用的密钥登录方式,再重启服务,顺序反了就只能走控制台救援了。
第四步:登录失败先查这三处。密钥登录报 Permission denied 时,八成是权限问题:用户家目录不能被其他用户写,.ssh 目录应为 700,authorized_keys 应为 600,属主必须是登录用户本人。修权限:chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys。如果权限没问题,再用 ssh -v user@服务器IP 看详细日志,它会明确告诉你是哪一步被拒绝:是没找到密钥文件,还是服务器拒绝了公钥,对症处理即可。
第五步:用配置文件让日常登录更顺手。服务器一多,每次敲 ssh -i 密钥 -p 端口 user@IP 很容易出错。可以在本地 ~/.ssh/config 里给每台服务器起个别名,把主机、用户、端口、密钥文件写死,之后登录只要敲 ssh myserver。如果私钥设了口令短语,再把密钥交给 ssh-agent 托管一次,ssh-add ~/.ssh/id_ed25519 后当天就不用反复输入口令,安全和便利可以兼得。
结尾:密钥登录并不复杂,生成、传公钥、关密码、查权限、配别名五步走完,一台服务器的安全底线就抬高了一大截。对个人用户来说,这一步的投入产出比很高:十分钟配置,换来长期免去密码被爆破的担忧。之后还可以再进一步:给不同用途生成不同密钥、限制密钥只能从固定地址登录、定期轮换旧密钥,这些都是在这套基础上的自然延伸。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。