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配置文件永久生效(推荐多服务器管理使用)
- 在Windows的
C:\Users\Me\.ssh\目录下新建无后缀的纯文本文件,命名为config - 在文件中按服务器添加对应配置块,示例:
# 服务器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
- 保存文件后,直接执行
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
相关产品推荐
相关产品推荐

