SSH密钥生成导入,Windows与Linux客户端

SSH密钥生成导入,Windows与Linux客户端

SSH密钥登录比密码更安全,也是管理Linux服务器的标准做法。
本文面向零基础用户,分别说明在Windows和Linux客户端上生成密钥对、把公钥导入服务器,并验证免密登录的完整流程。
跟着步骤做,你能在两台常用系统上成功配置密钥并正常连接。

一、先理解密钥对和准备条件

SSH密钥登录依赖一对密钥:私钥留在自己电脑,公钥放到服务器。
连接时服务器用公钥验证你持有的私钥,匹配成功即允许登录,不需要输入密码。

开始前请确认:

  • 你有一台可SSH登录的Linux服务器(云服务器或本地虚拟机均可),知道IP、端口、用户名。
  • Windows 10/11 自带OpenSSH客户端;Linux和macOS终端默认包含。
  • 如果服务器只允许密钥登录,请先保留一个可用的密码登录会话,避免配置失误被锁在外面。

二、Linux客户端生成与导入密钥

在Linux终端打开后,直接执行密钥生成命令。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

按提示操作:

  • 保存路径直接回车,默认存到 ~/.ssh/id_rsa。
  • 密码短语可留空(直接回车)实现完全免密;若设置密码,每次使用需输入,安全性更高。

生成后检查文件:

ls -l ~/.ssh/

应看到 id_rsa(私钥)和 id_rsa.pub(公钥)。

把公钥导入服务器,最便捷的是 ssh-copy-id:

ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 root@服务器IP

如果系统没有该命令,手动复制:

cat ~/.ssh/id_rsa.pub | ssh -p 22 root@服务器IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

完成后尝试登录:

ssh -p 22 root@服务器IP

预期结果:不再提示输入密码,直接进入服务器命令行。

三、Windows客户端生成与导入密钥

Windows 10/11 自带OpenSSH,无需额外安装。
按 Win + R 输入 cmd 或打开 PowerShell。

生成密钥:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

默认保存到 C:\Users\你的用户名\.ssh\id_rsa,同样可留空密码短语。

导入公钥到服务器,Windows没有 ssh-copy-id,用以下命令把公钥内容追加到服务器的 authorized_keys:

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh -p 22 root@服务器IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

如果提示需要输入密码,输入服务器密码即可。
然后测试登录:

ssh -p 22 root@服务器IP

验证成功:连接后不提示密码,直接进入服务器。

四、避开这些常见坑

  • 权限错误:服务器上 ~/.ssh 目录权限必须为700,authorized_keys 文件权限必须为600,否则SSH会拒绝使用密钥。用 chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys 修复。
  • 端口不是22:所有命令都要加 -p 你的端口,否则连接会被拒绝。
  • 私钥泄露:私钥文件不要发给任何人,不要上传到服务器。
  • Windows路径问题:在PowerShell中路径用 $env:USERPROFILE,在CMD中可用 %USERPROFILE%。
  • 服务器禁用密码登录:确认密钥登录成功后,再考虑修改 /etc/ssh/sshd_config 中的 PasswordAuthentication no,改完重启sshd服务。

五、验证与后续使用

登录成功后,可以查看服务器上的公钥文件确认内容:

cat ~/.ssh/authorized_keys

如果输出与你本地 id_rsa.pub 内容一致,说明导入正确。
之后使用 ssh root@服务器IP 即可免密登录,也可以配置 ~/.ssh/config 简化命令:

Host myserver
    HostName 服务器IP
    User root
    Port 22
    IdentityFile ~/.ssh/id_rsa

保存后直接用 ssh myserver 登录。

常见疑问

为什么导入后还是提示输入密码?
检查服务器上 authorized_keys 文件权限和所属用户,确保是600且属于当前登录用户。同时确认连接时使用的用户名与导入公钥时一致。

Windows下找不到.ssh文件夹怎么办?
.ssh 是隐藏文件夹,在文件资源管理器地址栏输入 %USERPROFILE%\.ssh 回车即可进入。

可以在多台电脑使用同一个密钥吗?
可以,但不推荐。更安全的做法是每台设备生成独立密钥,分别导入服务器,便于单独撤销。

密钥登录后还能用密码吗?
默认可以,除非服务器配置禁用了密码登录。建议保留密码登录作为备用,直到确认密钥稳定可用。

按照以上步骤,你已经在Windows和Linux客户端完成了SSH密钥生成导入,并能免密登录服务器。
后续如需更严格的安全策略,可再研究禁用密码登录和限制登录用户。

分享到:
上一篇
机房应急预案演练脚本,断电、断网、攻击场景
下一篇
Fail2ban自定义规则,拦截网站后台暴力扫描
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意