Xshell中文网 > Xshell常见问题 > XshellCN怎么设置密钥登录 XshellCN密钥认证失败怎么排查

XshellCN怎么设置密钥登录 XshellCN密钥认证失败怎么排查

发布时间:2026-03-02 16: 33: 00

做远程运维时,用密钥替代口令是更常见的登录方式,既能减少反复输入密码的麻烦,也便于把访问权限做成可控的配置。本文以由NetSarang推出的Xshell为参照,把密钥登录的完整配置链路拆开讲清楚,并把密钥认证失败时最容易忽略的检查点按步骤给到你。

一、XshellCN怎么设置密钥登录

先把思路定住:密钥登录至少包含两段配置,客户端要有可用私钥并在会话里选中,服务器要已经登记对应公钥并满足权限要求。按下面顺序做,能把返工次数压下去。

1、新建会话并写入连接参数

在Xshell主界面点【File】→【New】创建会话,把协议保持为SSH,填写主机地址与端口后先保存会话名称,确保后续修改认证方式时不会丢配置。

2、生成一对用户密钥

在菜单【Tools】→【New User Key Wizard】进入向导,按向导提示选择密钥类型与长度,设置密钥口令并完成生成,生成完成后这把私钥会进入本机的用户密钥库,后面会话直接引用它即可。

3、导出公钥内容用于服务器登记

打开【Tools】→【User Key Manager】,选中刚生成的密钥点【Properties】,切到【Public Key】页,在【Public Key Format】里选合适格式后点【Save as a file】保存公钥文件或复制公钥文本,准备发到服务器侧登记。

4、把公钥登记到服务器并处理权限

在服务器上把公钥内容追加写入当前登录用户的~/.ssh/authorized_keys,确认~/.ssh目录与authorized_keys文件没有开放写权限,否则服务端会直接拒绝公钥认证,看起来就像客户端一直在失败重试。

5、在会话里选择Public Key并绑定私钥

打开会话属性,在左侧找到用户身份验证页,把方法选为Public Key,然后点【Setup...】进入密钥设置,按界面提示点【Import...】把私钥导入或从用户密钥列表中选中对应密钥,若私钥设置了口令则在此处填写或按提示输入。

6、首次连接确认主机指纹并保存

第一次连新主机时会弹出安全警告,核对指纹无误后点【Accept and Save】把主机密钥存入本地库,这一步不做或点取消,会直接中断连接流程,后面再怎么改用户密钥也不会成功登录。

二、XshellCN密钥认证失败怎么排查

密钥认证失败通常不是一个点的问题,而是客户端选错密钥、服务器没登记公钥、权限不合规、或被主机密钥告警拦住这几类原因叠加。下面按从高频到低频的顺序排查,你可以边看提示边对照处理。

1、先确认连接没有被安全警告中断

如果连接过程中弹出SSH安全警告却点了取消,Xshell会直接停止本次连接,表现为连不上或立刻断开;重新连接时先处理警告并在确认指纹后点【Accept and Save】。

2、确认会话里用户名与认证方法匹配

打开会话属性的用户身份验证页,核对用户名是否是服务器真实登录用户,方法是否确实选了Public Key,同时检查【Setup...】里被勾选的密钥是否就是你登记到服务器的那一把。

3、检查私钥是否成功导入且格式被支持

到【Tools】→【User Key Manager】里看密钥是否在列表中,必要时点【Import】重新导入;Xshell支持导入OpenSSH格式的SSH2私钥等多种格式,也支持导出为OpenSSH SSH2格式,导入格式不匹配时容易出现选得上但用不了的情况。

4、核对服务器侧公钥登记位置与权限

确认公钥写入的是目标用户家目录下的~/.ssh/authorized_keys而不是其他用户的目录,同时确保.ssh目录与authorized_keys不对组用户或其他用户开放写权限,权限不合规时服务端会拒绝使用该文件参与认证。

5、排除密钥口令与密钥属性问题

如果私钥设置了口令但输入错误,会表现为一直认证失败;你可以在【Tools】→【User Key Manager】选中密钥点【Properties】后在【General】页用【Change Passphrase】重设口令并重新尝试连接。

6、用对照法快速定位是链路问题还是认证问题

把会话认证方式临时切回Password做一次连通性验证,能登录说明网络、端口与账号本身没问题,问题就集中在用户密钥导入、选择、或服务器authorized_keys登记这条链路上,再回到上面第2到第4条逐项收敛。

三、XshellCN密钥认证失败时SSH安全警告怎么处理

很多人把失败原因归到用户密钥,其实被主机密钥告警挡住的情况很常见,尤其是服务器重装、迁移、或更换了主机密钥后,旧指纹还留在本地库里。把这件事处理干净,才能避免你在用户密钥上反复折腾。

1、读懂弹窗出现的触发条件

当远端主机密钥没有保存在本地数据库,或新收到的主机密钥指纹与已保存指纹不一致时,Xshell会弹出SSH安全警告,这不是用户认证阶段的错误,而是连接安全校验阶段的拦截。

2、指纹确认无误就选择保存而不是只接受一次

如果你确认这台机器就是目标主机,且指纹来源可信,优先点【Accept and Save】把主机密钥保存下来,避免每次连接都重复弹窗;点【Accept Once】只对本次有效,下次仍会再次提示。

3、指纹变化但确实是你维护的服务器时先清理旧记录

服务器重装或更换密钥后,本地旧记录会导致指纹不一致提示,你可以在【Tools】→【Host Key Manager】打开主机密钥列表,选中对应主机条目后点【Remove】删除旧主机密钥,再重新连接让Xshell重新接收并保存新指纹。

4、无法确认指纹来源时先停下来再核验

如果你拿不到可信的指纹对照来源,不要为了赶进度直接接受保存,因为这一步本质是在确认你连接的主机身份;先点【Cancel】中止连接,换到更可信的渠道核验指纹后再继续。

总结

XshellCN的密钥登录要点就两条:客户端用【Tools】→【New User Key Wizard】生成或用【User Key Manager】导入私钥并在会话里选中,服务器把对应公钥写入~/.ssh/authorized_keys且权限合规。遇到密钥认证失败时,先看是否被SSH安全警告拦住,再从会话方法与用户名、私钥导入格式、服务器公钥登记位置和权限这几项逐条收敛,基本都能在一次排查里定位到原因。

展开阅读全文

标签:XShell密钥XShell密钥登录XShell激活密钥

  • 热门文章