目录
[方案一:手动复制(最可靠,推荐)# 在PowerShell中显示并复制公钥](# 在PowerShell中显示并复制公钥)
[Q1:连接超时,提示Connection timed out](#Q1:连接超时,提示Connection timed out)
[Q2:提示Permission denied (publickey)](#Q2:提示Permission denied (publickey))
Windows连接腾讯云服务器终极指南:告别密码,一键SSH密钥登录(避坑实录)
明明照着教程做,却卡在
ssh-copy-id报错?本文记录从零开始实现Windows SSH密钥登录腾讯云的全过程,包含你一定会遇到的那些坑和解决方案。
作为一名Windows用户,当我第一次尝试用SSH密钥连接腾讯云服务器时,几乎被网上的各种教程搞懵了。要么是Linux/macOS教程,要么遇到奇怪的命令报错。经过实际摸索,我总结出这份专为Windows用户设计的完整指南,带你一次性成功配置SSH密钥登录。
一、为什么选择SSH密钥登录?
在开始之前,先了解为什么应该放弃密码登录:
-
安全性更高:密钥比密码更难暴力破解
-
操作更便捷:配置后无需每次输入密码
-
适合自动化:脚本、CI/CD工具等需要免交互登录的场景
-
腾讯云推荐:官方建议使用密钥对进行服务器认证
二、完整配置流程
以下是整个过程的流程图,帮你理清思路:

三、详细步骤解析
步骤1:在Windows上生成SSH密钥对
常见坑点:路径包含中文或特殊字符会导致失败
打开PowerShell(管理员或普通用户均可),执行:
# 生成RSA密钥对,默认3072位强度
ssh-keygen -t rsa
执行时会询问几个问题,直接按回车接受默认值即可:
-
保存路径 :
C:\Users\[你的用户名]\.ssh\id_rsa(推荐默认) -
密钥密码:可直接回车留空(方便后续使用)
成功标志:看到"Your identification has been saved in..."和艺术图案
# 查看生成的公钥,用于后续步骤
cat ~/.ssh/id_rsa.pub
步骤2:上传公钥到腾讯云服务器
这是最容易出错 的环节!Windows PowerShell默认没有ssh-copy-id命令。
方案一:手动复制(最可靠,推荐)# 在PowerShell中显示并复制公钥
cat ~/.ssh/id_rsa.pub
全选输出内容(从ssh-rsa开始到你的邮箱结束),右键复制或按Ctrl+C
ssh ubuntu@你的服务器IP
输入服务器密码登录
-
在服务器上配置公钥:
# 创建.ssh目录(如果不存在) mkdir -p ~/.ssh # 添加公钥到授权文件 echo '粘贴你的公钥内容' >> ~/.ssh/authorized_keys # 设置正确的权限(必须!) chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
步骤3:测试密钥登录
# 退出当前服务器连接(如果在服务器上)
exit
# 测试密钥登录
ssh ubuntu@你的服务器IP
成功标志:无需输入密码,直接进入服务器命令行。
步骤4:增强安全性(禁用密码登录)
⚠️ 重要警告:只有在密钥登录确认100%可靠后才能执行此操作!
# 编辑SSH配置
sudo nano /etc/ssh/sshd_config
# 找到并修改以下两行:
# PasswordAuthentication no # 将yes改为no
# PubkeyAuthentication yes # 确保这是yes
# 重启SSH服务
sudo systemctl restart sshd
或者使用一条命令完成:
sudo sed -i 's/^#*PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config && sudo systemctl restart sshd
四、常见问题与解决方案
Q1:连接超时,提示Connection timed out
-
检查服务器安全组是否开放22端口
-
确认服务器IP地址是否正确
-
尝试关闭Windows防火墙临时测试
Q2:提示Permission denied (publickey)
# 检查本地私钥权限(PowerShell中)
icacls $env:USERPROFILE\.ssh\id_rsa
# 修复权限
icacls $env:USERPROFILE\.ssh\id_rsa /inheritance:r /grant:r "$env:USERNAME:R"
Q3:服务器上文件权限问题
# 在服务器上执行
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 644 ~/.ssh/known_hosts
五、最佳实践建议
-
密钥备份 :将
C:\Users\[用户名]\.ssh目录备份到安全位置 -
使用密码保护:生成密钥时设置密码(passphrase),平衡安全与便利
-
定期更换:重要服务器建议每3-6个月更换一次密钥对
-
分权管理:不同服务器使用不同密钥对,避免一把钥匙开所有门
-
紧急访问:保留一个备用登录方式(如控制台VNC),以防密钥丢失
六、总结
通过SSH密钥登录腾讯云服务器,你不仅获得了更好的安全性,还提升了工作效率。虽然Windows环境下的配置过程有一些特殊坑点,但只要按照本文的步骤操作,就能顺利实现一键登录。
记住关键点:
-
Windows PowerShell默认无
ssh-copy-id,手动复制最可靠 -
文件权限是常见失败原因,本地和服务器都要检查
-
测试完全成功后,再禁用密码登录
现在,享受无需密码、秒速连接服务器的便利吧!如果还有问题,欢迎在评论区留言讨论。
实用命令速查:
# 生成新密钥对
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 测试连接详情(调试用)
ssh -v ubuntu@服务器IP
# 检查现有SSH连接配置
ssh -T git@github.com # 测试GitHub
ssh -T git@gitee.com # 测试Gitee
本文基于Windows 11 + PowerShell 7 + Ubuntu 20.04实测,适用于大多数Windows 10/11环境。