Windows 免密 SSH 登录 Ubuntu配置全流程(可复用到 VS Code)

一、场景与目标

  • 客户端:Windows(OpenSSH)

  • 服务端:Ubuntu(OpenSSH server)

  • 目标:ssh 用户名@ip(或别名 ssh name)时不再输入密码,改用 SSH Key(publickey)。

二、Windows 端生成 SSH 密钥

  1. win+r打开 CMD

2.输入指令

ssh-keygen -t ed25519 -a 64

一路回车采用默认路径(推荐):

  • 私钥:C:\Users\lenovo\.ssh\id_ed25519

  • 公钥:C:\Users\lenovo\.ssh\id_ed25519.pub

检查是否生成成功:

复制代码
dir "%USERPROFILE%\.ssh"

你应该能看到 id_ed25519id_ed25519.pub

三、把 Windows 公钥写入 Ubuntu 的 authorized_keys

最稳的办法是一条命令追加公钥(会让你输入一次 Ubuntu 密码,这是最后一次):

type "%USERPROFILE%\.ssh\id_ed25519.pub" | ssh cqt@192.168.1.114 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

这条命令做了四件事:

  1. 创建远端 ~/.ssh

  2. 设置目录权限 700

  3. 追加公钥到 ~/.ssh/authorized_keys

  4. 设置文件权限 600

四、在 Windows 配置 SSH 别名(推荐)

1.编辑配置文件:

notepad "%USERPROFILE%\.ssh\config"

原始配置文件如下:

写入(注意ccslab需要自己命名):

Host ccslab

HostName 192.168.1.114

User cqt

Port 22

IdentityFile ~/.ssh/id_ed25519

IdentitiesOnly yes

这样以后你只需要:

ssh ccslab

五、 验证免密是否真正生效(严谨验收)

  1. 直接登录验证

ssh ccslab

连接成功:无需密码

  1. -v 看认证方式(最权威)

ssh -v ccslab

你要看到类似关键行:

  • Offering public key: ... id_ed25519

  • Server accepts key: ...

  • Authenticated ... using "publickey".

    pasted

出现这句就等于"盖章":确实是密钥登录,而不是密码。

此前我们使用VScode打开每连接都需要密码,现在再重新打开就不用重新输入了。

六、总结

1.生成key

ssh-keygen -t ed25519 -a 64

2.推公钥到 Ubuntu:

type "%USERPROFILE%\.ssh\id_ed25519.pub" | ssh cqt@192.168.1.114 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

3.配置别名:

在新电脑 CMD 执行:

notepad "%USERPROFILE%\.ssh\config"

然后替换为:

Host ccslab

HostName 192.168.1.114

User cqt

Port 22

IdentityFile ~/.ssh/id_ed25519

IdentitiesOnly yes

4.验收

ssh -v ccslab

七、Windows系统免密登录同一个Ubuntu系统多个账户

1.在 Windows 上复制你的公钥内容

type "%USERPROFILE%\.ssh\id_ed25519.pub"

把输出整行复制下来(以 ssh-ed25519 开头那行)。

可以看到公钥为:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIuqok83DZM1iuj5c/iLz8cZryk7YoPe7ZJ3IUO+CJxO lenovo@LAPTOP-75N2RIOM

2.免密登录到 Ubuntu(cqt)

ssh cqt@192.168.1.114

3.在 Ubuntu 上切到 zwj 并配置 authorized_keys

3.1切换账号

sudo -iu zwj

输入mkdir -p ~/.ssh

mkdir -p ~/.ssh

输入chmod 700 ~/.ssh

chmod 700 ~/.ssh

输入nano ~/.ssh/authorized_keys

nano ~/.ssh/authorized_key

4.编辑授权公钥列表文件

将公钥完整复制过来

5.输入其它指令并退出

输入chmod 600 ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

6.回到 Windows 测试 zwj 免密登录

不再需要登录密码

相关推荐
Leinwin4 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_865382504 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇4 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7594 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣5 小时前
智能体选型实战指南
运维·人工智能
yy55275 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ6 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔7 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密7 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi20157 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑