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

不再需要登录密码

相关推荐
雪可问春风16 小时前
docker环境部署
运维·docker·容器
lwx91485216 小时前
Linux-Shell算术运算
linux·运维·服务器
翻斗包菜16 小时前
PostgreSQL 日常维护完全指南:从基础操作到高级运维
运维·数据库·postgresql
somi717 小时前
ARM-驱动-02-Linux 内核开发环境搭建与编译
linux·运维·arm开发
海的透彻17 小时前
nginx启动进程对文件的权限掌控
运维·chrome·nginx
路溪非溪17 小时前
Linux驱动开发中的常用接口总结(一)
linux·运维·驱动开发
航Hang*18 小时前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全
北方的流星18 小时前
华三网络设备的路由重定向配置
运维·网络·华三
河南博为智能科技有限公司18 小时前
蓄电池在线监测系统-守护数据中心安全防线
运维·边缘计算
SkyWalking中文站18 小时前
使用 TraceQL 查询 SkyWalking 和 Zipkin 链路追踪数据并在 Grafana 中可视化
运维·grafana·监控