深色模式
第一次 SSH 登录
摘要:学会用 SSH 远程登录服务器,并用密钥替代密码登录(更安全、可自动化),是运维的基本功。
适用环境
- 一台已安装好 Linux 的服务器(或虚拟机),网络可达
- 本地是 Linux/macOS(自带 ssh);Windows 用 PowerShell 或 Git Bash
一、密码方式首次登录
bash
ssh ops@<服务器IP>
# 首次连接会询问是否信任指纹,输入 yes
# 再输入该用户密码即可登录1
2
3
2
3
二、生成密钥对
bash
# 在本地机器执行
ssh-keygen -t ed25519 -C "ops@lab"
# 一路回车,默认生成 ~/.ssh/id_ed25519(私钥)和 .pub(公钥)
cat ~/.ssh/id_ed25519.pub1
2
3
4
2
3
4
三、把公钥传到服务器
bash
# 方法一:一键拷贝(推荐)
ssh-copy-id ops@<服务器IP>
# 方法二:手动追加
# 把本地 .pub 内容粘到服务器的 ~/.ssh/authorized_keys1
2
3
4
5
2
3
4
5
四、验证密钥登录并禁用密码
bash
# 不输密码应能登录
ssh ops@<服务器IP>
# 确认无误后,编辑服务端配置禁用密码登录(需 root)
sudo sed -i 's/^#\?PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart sshd1
2
3
4
5
6
2
3
4
5
6
危险
禁用密码登录前,必须先用密钥成功登录一次,否则会被锁在门外!
验证
- [ ] 密钥可无密码登录
- [ ]
PasswordAuthentication no已生效(改完重启 sshd) - [ ] 私钥权限为
600(chmod 600 ~/.ssh/id_ed25519)
常见坑
- 权限太开放:
.ssh目录权限应为700,authorized_keys为600,否则密钥不生效。 - 连接超时:检查安全组/防火墙是否放通 22 端口。
- 改坏 sshd_config:改前先备份
cp /etc/ssh/sshd_config{,.bak}。