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
相关推荐
老实巴交的麻匪5 小时前
Exception异常架构设计:系统性异常处理的思维革命(05)
运维·云原生·架构
爱学习的小囧5 小时前
VMware NSX-T Data Center 3.2.3.0 部署后账号密码获取及登录配置教程
linux·运维·服务器·网络·数据库·esxi
喵了几个咪5 小时前
MySQL 运维实战:ibd 文件批量转换为 SQL 完整指南(基于 ibd2sql)
运维·sql·mysql
bukeyiwanshui5 小时前
20260417 NFS服务器
linux·运维·服务器
wzl202612135 小时前
企微关键词拉群之批量自动化与风控规避方案
运维·自动化·企业微信
Gofarlic_oms15 小时前
制定企业Citrix虚拟化软件资产管理政策框架
运维·服务器·开发语言·matlab·负载均衡
运维有小邓@6 小时前
MFA轰炸攻击是什么?如何有效防范?
运维·mfa
坚持就完事了6 小时前
“.sh”文件
linux·运维·服务器
X7x56 小时前
网工核心:直连 / 静态 / 动态路由全解,附华为 / 华三 / 思科配置 + 高级应用
运维·网络·网络协议·信息与通信
King's King6 小时前
自动化仓库节能方案
运维·自动化