苏州市网站建设_网站建设公司_全栈开发者_seo优化
2026/1/22 18:28:29 网站建设 项目流程

如何在Windows电脑上设置SSH密钥免密登录Ubuntu Server

以下是在Windows电脑上设置SSH密钥免密登录Ubuntu Server的完整、可靠、一步到位的操作步骤,假设你的环境如下。
把下文中的xxx.yy.zz.www替换为你的ip,然后初始密码就是你这个服务器的密码。

本地电脑:Windows 10/11(使用 PowerShell + OpenSSH 客户端) 远程服务器:Ubuntu Server 24.04 LTS 服务器信息: IP:xxx.yy.zz.www 用户名:ubuntu 初始密码:chushimimachushimima

✅ 最终目标
在 Windows PowerShell 中执行:

ssh ubuntu-server

即可直接登录,无需输入密码。

🔧 完整操作步骤(请严格按顺序执行)

第一步:在 Windows 上生成专用 SSH 密钥

打开 PowerShell(以普通用户运行)

生成专用密钥(不设 passphrase,实现完全免交互)
ssh-keygen -t ed25519 -C “ubuntu-server” -f “env:USERPROFILE.sshid_ed25519_ubuntu”

  • 连续按 回车(不要输入 passphrase)
  • 私钥保存为:C:UsersAdministrator.sshid_ed25519_ubuntu
  • 公钥保存为:C:UsersAdministrator.sshid_ed25519_ubuntu.pub

第二步:将公钥上传到服务器

  1. 确保服务器有 .ssh 目录
ssh ubuntu@xxx.yy.zz.www "mkdir -p ~/.ssh && chmod 700 ~/.ssh"
  1. 上传公钥(会提示输入一次密码)
type env:USERPROFILE.sshid_ed25519_ubuntu.pub | ssh ubuntu@xxx.yy.zz.www "cat >> ~/.ssh/authorized_keys"
  1. 设置正确权限(关键!)
ssh ubuntu@xxx.yy.zz.www "chmod 600 ~/.ssh/authorized_keys"

💡 输入密码时不会显示字符,输完直接回车即可。

第三步:创建 SSH 配置文件(简化登录命令)

自动生成正确的 config 文件

@" Host ubuntu-server HostName xxx.yy.zz.www User ubuntu IdentityFile ~/.ssh/id_ed25519_ubuntu IdentitiesOnly yes "@ | Out-File -FilePath env:USERPROFILE.sshconfig -Encoding ASCII

✅ 此命令确保路径为 ~/.ssh/…(不是 /.ssh/…),且编码兼容。

第四步:测试免密登录

使用别名登录

ssh ubuntu-server

✅ 如果直接进入服务器命令行(如ubuntu@VM-0-7-ubuntu:~),说明成功!

若仍提示密码,请跳到下方【故障排查】。

第五步(可选但推荐):禁用密码登录(提升安全)

⚠️ 仅在确认免密登录成功后操作!

  1. 登录服务器:
ssh ubuntu-server
  1. 在服务器上执行:
# 禁用密码登录,启用密钥登录 sudo sed -i 's/PasswordAuthentication./PasswordAuthentication no/' /etc/ssh/sshd_config sudo sed -i 's/PubkeyAuthentication./PubkeyAuthentication yes/' /etc/ssh/sshd_config # 重启 SSH 服务 sudo systemctl restart sshd
  1. 退出并再次测试:
exit ssh ubuntu-server

应仍然能直接登录。

🔒 额外安全建议

  1. 立即修改初始密码(即使禁用密码登录):
passwd
  1. 备份私钥:
- 备份 C:UsersAdministrator.sshid_ed25519_ubuntu 到安全位置 - 不要泄露此文件!
  1. 公钥(.pub文件)可公开分享,无安全风险。

🛠 故障排查

❌ 问题:仍提示输入密码?

检查 1:公钥是否已上传?
查看服务器上的authorized_keys

ssh ubuntu@xxx.yy.zz.www "cat ~/.ssh/authorized_keys"

应包含一行以ssh-ed25519 AAAAC3...开头的内容。

检查 2:权限是否正确?

ssh ubuntu@xxx.yy.zz.www "ls -ld ~ ~/.ssh ~/.ssh/authorized_keys"

正确权限:

/home/ubuntu:drwxr-xr-x(755) ~/.ssh:drwx------(700) ~/.ssh/authorized_keys:-rw-------(600)

检查 3:config 文件是否正确?

Get-Content $env:USERPROFILE.sshconfig

必须包含:

IdentityFile ~/.ssh/id_ed25519_ubuntu

完成以上所有步骤后,你将拥有一个安全、便捷、免密的 SSH 连接。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询