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 免密登录

不再需要登录密码

相关推荐
SelectDB13 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
开发者联盟league6 天前
安装pnpm
ssh
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智6 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_6 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化