SSH 连接服务器:密码登录、密钥登录与常见报错处理
用密码或密钥从本地连上你的 VPS,并快速排查连不上的常见问题
拿到一台 Linux 服务器后,第一件事就是通过 SSH 远程登录。本文介绍两种登录方式,以及连不上时怎么排查。
一、用密码登录
在本地终端(Windows 用 PowerShell 或 Windows Terminal,macOS/Linux 用系统终端)执行:
ssh root@你的服务器IP
首次连接会提示确认指纹,输入 yes 回车,再输入密码即可。默认端口是 22,如果服务商或你自己改过端口,用 -p 指定:
ssh -p 2222 root@你的服务器IP
密码登录方便,但容易被暴力破解,建议尽快切换到密钥登录。
二、用密钥登录(推荐)
密钥登录用一对「公钥 + 私钥」代替密码,更安全也更省事。
1. 本地生成密钥对
ssh-keygen -t ed25519 -C "你的备注"
一路回车即可,默认生成 /.ssh/ided25519(私钥)和 /.ssh/ided25519.pub(公钥)。私钥务必保管好,永远不要外发。
2. 把公钥上传到服务器
最简单的方式:
ssh-copy-id root@你的服务器IP
如果本地没有 ssh-copy-id(部分 Windows 环境),可手动把 ided25519.pub 的内容追加到服务器的 /.ssh/authorizedkeys 文件里。
3. 之后直接免密登录
ssh root@你的服务器IP
确认能用密钥登录后,建议编辑服务器 /etc/ssh/sshdconfig,把 PasswordAuthentication 改为 no 并重启 SSH 服务(systemctl restart ssh,CentOS/Rocky 上服务名是 sshd),彻底关闭密码登录。
三、常见报错处理
- Connection timed out / 连接超时:多为网络或防火墙问题。检查 IP 是否正确、端口是否放行(云平台安全组、ufw 或 firewalld),服务器是否已开机。
- Connection refused / 拒绝连接:端口通但 SSH 没在监听。确认端口号对不对,或服务器上 SSH 服务是否运行。
- Permission denied (publickey,password):账号或密码错误、密钥没配好。核对用户名,检查服务器 /.ssh 权限(目录 700、authorizedkeys 为 600)。
- REMOTE HOST IDENTIFICATION HAS CHANGED:多因重装系统后指纹变了。删除本地旧记录再重连:
ssh-keygen -R 你的服务器IP
小结
先用密码登录进服务器,尽快配好密钥登录并关闭密码认证;遇到连不上,按「超时→防火墙、拒绝→端口、denied→账号密钥」的顺序排查即可。