Windows SSH 免密码登录 Ubuntu

Windows SSH 免密码登录 Ubuntu 快速指南

1. Windows 生成密钥(PowerShell)

powershell 复制代码
ssh-keygen -t ed25519 -f $env:USERPROFILE\.ssh\id_ed25519
# 提示输入口令时直接回车两次(留空)

2. 上传公钥到 Ubuntu(一次输入密码)

powershell 复制代码
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh user@host "mkdir -p ~/.ssh && umask 077 && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

user@host 替换为实际用户名和主机 IP。

3. Ubuntu 端修复权限(重要)

bash 复制代码
# 取消 home 目录对组/其他的写权限
chmod go-w ~
chmod 750 ~

# 确保 .ssh 和 authorized_keys 权限正确
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

# 确保属主正确
sudo chown -R $(whoami):$(whoami) ~/.ssh

4. 测试登录(Windows)

powershell 复制代码
ssh user@host
# 应该不再要求密码

常见问题排查

问题 解决方案
仍要求密码 检查 home/~/.ssh 权限;运行 chmod go-w ~chmod 700 ~/.ssh
公钥格式错误 修复 CRLF:dos2unix ~/.ssh/authorized_keys
sshd 不允许公钥 确保 /etc/ssh/sshd_configPubkeyAuthentication yes
权限被拒绝 运行 chown -R $(whoami):$(whoami) ~/.ssh

调试(如需详细信息)

Windows 客户端查看详细输出:

powershell 复制代码
ssh -vvv user@host

Ubuntu 服务器查看登录日志:

bash 复制代码
sudo tail -n 50 /var/log/auth.log

可选:禁用密码登录(确认公钥工作后)

bash 复制代码
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl reload ssh
相关推荐
楚枫默寒10 小时前
Linux 编辑文件后自动添加修改日期
linux·运维·bash
苦青藤11 小时前
从零搭建 WSUS 隔离网络:完整实战指南(内网离线补丁分发)
运维·windows·microsoft
2601_9611940212 小时前
27考研刘晓艳单词pdf
linux·sql·ubuntu·华为·pdf·.net
shandianchengzi14 小时前
【记录】Ghidra|Ubuntu 26.04 下 Ghidra 界面缩放完整指南
linux·ubuntu·逆向·ghidra
天天进步201514 小时前
Python全栈项目--Python自动化运维工具开发
运维·python·自动化
Soari14 小时前
Ubuntu 根分区文件系统损坏,系统启动时自动检查失败
linux·运维·ubuntu
杨云龙UP15 小时前
Oracle Health Check巡检脚本使用SOP V2.0:从HTML原始报告→生成Word专业巡检报告→交付客户_2026-06-03
linux·运维·数据库·sql·oracle·报告·巡检
广州灵眸科技有限公司15 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) Linux虚拟机准备
linux·运维·服务器
Lana学习中16 小时前
【运维杂记】连接不上远程服务器的问题处理
运维·服务器
AOwhisky16 小时前
MySQL 学习笔记(第一期):数据库基础与 MySQL 初探
运维·数据库·笔记·学习·mysql·云计算