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

不再需要登录密码

相关推荐
言乐69 小时前
Python加速器4跨境网络加速器
运维·服务器·开发语言·网络·python
蓝速科技12 小时前
医院导诊 AI 数字人一体机场景适配与落地指南丨蓝速科技
运维·数据库·人工智能·科技·自然语言处理·技术分享
H_oRIZoN_12 小时前
Linux入门DAY41(51 单片机 串口与通信协议)
linux·运维·单片机
小马同学-14 小时前
OpenStack 使用实战:Web 界面与 CLI 命令行实验
运维·云计算·openstack
网安老伯15 小时前
都2026年了,还在问网络安全怎么入门?看完这一篇你就懂了
运维·计算机网络·web安全·网络安全·wireshark·密码学·网络攻击模型
小祺先生15 小时前
mt7921 debian系统 如何安装驱动
运维·网络·debian
cui_hao_nan15 小时前
从零搭建 Kubernetes 集群:Ubuntu + kubeadm 完整实战
ubuntu·容器·kubernetes
m0_4598729215 小时前
Linux 系统基础
linux·运维·服务器
fb_1234516 小时前
Docker入门-第3章-容器镜像深度解析
运维·docker·容器
吴声子夜歌16 小时前
Shell编程——数组
linux·运维·shell