You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows客户端配置多份SSH密钥连接多台Ubuntu服务器异常如何解决

你无法用自定义路径密钥登录的核心原因有两个:一是服务器端authorized_keys文件权限不符合SSH安全要求,二是Windows端SSH客户端默认不会主动读取非默认名称/路径的私钥,按以下步骤修复即可:

一、修复服务器端权限

登录对应服务器执行以下命令,修正密钥文件权限(SSH服务对权限要求严格,权限过高会直接拒绝密钥验证):

chmod 600 ~/.ssh/authorized_keys
chown $USER:$USER ~/.ssh/authorized_keys

如果有多台服务器,每台都需要执行上述命令

二、Windows端配置(两种方案可选)

方案1:临时指定密钥登录

每次连接时加-i参数指定私钥路径即可,示例:

ssh -i C:\Users\Me\.ssh\server1\server1_rsa server@服务器1IP

该方案适合临时访问服务器的场景,不需要额外配置。

方案2:配置SSH配置文件永久生效(推荐多服务器管理使用)

  1. 在Windows的C:\Users\Me\.ssh\目录下新建无后缀的纯文本文件,命名为config
  2. 在文件中按服务器添加对应配置块,示例:
# 服务器1配置(分子目录存储场景)
Host server1
  HostName 服务器1的公网IP/域名
  User 服务器登录用户名
  IdentityFile C:\Users\Me\.ssh\server1\server1_rsa

# 服务器2配置(直接存.ssh根目录场景)
Host server2
  HostName 服务器2的公网IP/域名
  User 服务器登录用户名
  IdentityFile C:\Users\Me\.ssh\server2_rsa
  1. 保存文件后,直接执行ssh server1或ssh server2即可自动调用对应密钥登录,无需额外参数。

额外注意事项

  • Windows端私钥文件必须限制仅当前用户可访问:右键私钥文件→属性→安全→高级,禁用继承后删除所有其他用户/组的权限,仅保留当前Windows登录用户的完全控制权限,否则SSH会判定私钥不安全拒绝加载。
  • 后续上传新服务器公钥时建议用追加方式,避免覆盖已有authorized_keys内容:
    type C:\Users\Me\.ssh\server1\server1_rsa.pub | ssh server@服务器IP "cat >> ~/.ssh/authorized_keys"
    

你要求的两种密钥存储方式都支持,只要IdentityFile后的路径填写正确即可正常使用。

内容的提问来源于stack exchange,提问作者jjosephliu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:36:03