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_config 有 PubkeyAuthentication 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
相关推荐
无足鸟ICT5 小时前
【RHCA+】影响Linux系统性能的因素
linux·运维·服务器
沫璃染墨5 小时前
从零入门计算机网络系列(十):HTTP协议进阶——从资源路径解析到状态码与请求头详解
linux·运维·服务器·网络·c++·http
oioihoii5 小时前
Windows部署MySpeed自建测速服务:Docker运行后直接测速,再配置固定公网地址远程查看
运维·docker·容器
Sayai6 小时前
Ubuntu 开发环境搭建避坑(一):网卡 EEE 致 60% 周期性丢包,Realtek RTL8125 网络黑洞排查与修复
linux·运维·网络·ubuntu·性能优化
墨染天姬6 小时前
【linux 网络1】数据怎么进网卡到内核?
linux·运维·网络
迪康coolmu6 小时前
金融客户数据合规落地:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·数据库·经验分享·安全·网络安全·金融
小嘉丶学长6 小时前
Day13 · 列表与元组
linux·运维·服务器·开发语言·python
时间售卖铺6 小时前
MySQL事务ACID与隔离级别深度解析
运维·数据库·mysql·云原生
中屹指纹浏览器svip6 小时前
指纹浏览器RPA自动化靠谱吗?先分清适用边界
运维·自动化·rpa
zuiyuewentian6 小时前
借助 AI 在 Win11 上搭建 Rocky Linux:用 Visual Studio 直接调试 Linux 服务
linux·运维·visual studio