ssh快速连接服务器终端配置
好的!我们从 生成新 SSH 密钥 开始,一步步教你如何配置免密登录和优化 SSH 连接。
🔹 1. 生成新的 Ed25519 密钥(专用于服务器)
运行以下命令生成新密钥(避免和 GitHub 的 id_ed25519
冲突):
ssh-keygen -t ed25519 -f ~/.ssh/server_key -C "your_email@example.com"
-t ed25519
→ 使用更安全的 Ed25519 算法(比 RSA 更快更安全)。-f ~/.ssh/server_key
→ 指定密钥文件名(私钥server_key
,公钥server_key.pub
)。-C "your_email@example.com"
→ 添加注释(可选,方便识别密钥用途)。
执行后会提示:
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase): [可直接回车,不设密码]
Enter same passphrase again: [再次回车]
Your identification has been saved in ~/.ssh/server_key
Your public key has been saved in ~/.ssh/server_key.pub
- 如果设置密码:每次使用密钥时需输入(更安全,但稍麻烦)。
- 如果不设密码:直接回车,免密登录(适合测试环境)。
🔹 2. 上传公钥到服务器
使用 ssh-copy-id
将公钥 server_key.pub
上传到服务器:
ssh-copy-id -i ~/.ssh/server_key.pub user@59.67.230.45
- 会提示输入服务器密码(
xxxxx
)。 - 成功后,公钥会被添加到服务器的
~/.ssh/authorized_keys
。
如果 SSH 端口不是 22(比如 2222
),加 -p
参数:
ssh-copy-id -i ~/.ssh/server_key.pub -p 2222 user@59.67.230.45
🔹 3. 测试免密登录
ssh -i ~/.ssh/server_key user@59.67.230.45
- 如果密钥没设密码,应该能直接登录。
- 如果设置了密码,会提示输入密钥密码(不是服务器密码)。
🔹 4. 优化 SSH 连接(可选)
📂 方法 1:使用 ~/.ssh/config
管理连接
编辑 ~/.ssh/config
文件(没有就新建):
nano ~/.ssh/config
添加以下内容(根据你的服务器信息修改):
Host myserver # 自定义别名(如 myserver、myvm)HostName 59.67.230.45 # 服务器 IP 或域名User user # 登录用户名Port 22 # SSH 端口(默认 22,非默认需修改)IdentityFile ~/.ssh/server_key # 指定私钥路径
保存后(Ctrl+O
→ 回车 → Ctrl+X
),直接运行:
ssh myserver # 等同于 ssh -i ~/.ssh/server_key user@59.67.230.45
🔐 方法 2:禁用密码登录(增强安全)
如果服务器是你的,可以禁用密码登录,只允许密钥登录:
ssh myserver
sudo nano /etc/ssh/sshd_config
找到并修改:
PasswordAuthentication no # 禁用密码登录
PubkeyAuthentication yes # 启用密钥登录
重启 SSH 服务:
sudo systemctl restart sshd
⚠️ 注意:
- 确保你的公钥已正确上传,否则会被锁在服务器外!
- 测试时建议开另一个终端窗口,防止配置错误导致失联。
🔹 5. 其他建议
🔧 修复文件权限
SSH 对文件权限敏感,运行以下命令修复:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/server_key # 私钥必须 600
chmod 644 ~/.ssh/server_key.pub # 公钥可以 644
chmod 644 ~/.ssh/config # config 可以 644
🗑️ 删除旧密钥(如果需要)
如果不再使用默认密钥(id_ed25519
),可以删除:
rm ~/.ssh/id_ed25519 ~/.ssh/id_ed25519.pub
🔹 总结
步骤 | 命令/操作 | 说明 |
---|---|---|
1. 生成密钥 | ssh-keygen -t ed25519 -f ~/.ssh/server_key | 创建专用于服务器的密钥 |
2. 上传公钥 | ssh-copy-id -i ~/.ssh/server_key.pub user@IP | 将公钥传到服务器 |
3. 测试登录 | ssh -i ~/.ssh/server_key user@IP | 检查是否能免密登录 |
4. 优化配置 | 编辑 ~/.ssh/config | 简化连接命令 |
5. 增强安全 | 禁用密码登录 | 仅允许密钥登录 |
现在你可以用 ssh myserver
直接登录服务器了!如果有问题,随时问我 😊