如何修复SSH失败Permission Denied (publickey,gssapi-keyex,gssapi-with-mic)

SSH Permission Denied解决办法介绍在SSH服务器上修改权限相关设置后,出现SSH Permission denied错误。通常的场景包括新的软件包安装或新用户的创建。
在本教程中,你将学习如何解决或修复SSH Permission denied错误并重新连接到 SSH 服务器。
先决条件

  • 本地机器上的 SSH 客户端和远程系统上的 SSH 服务器
  • 访问远程服务器的用户帐户(用于基于密码的登录)
  • 具有sudo  或  root  权限的用户帐户 
什么是导致 SSH Permission denied(publickey、gssapi-keyex、gssapi-with-mic)?尝试通过 SSH 连接到服务器时出现 SSH 权限被拒绝错误:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)

如何修复SSH失败Permission Denied (publickey,gssapi-keyex,gssapi-with-mic)

文章图片
在 Permission denied 语句之后,括号包含在启动连接时失败的尝试身份验证方法。该错误表明公钥是问题,这是误导性的。
错误的原因之一可能是sshd_config,包含 SSH 服务器配置的文件。另一种可能是authorized_keys文件权限不足。此文件包含允许通过 SSH 连接到服务器的客户端的公钥列表。因此,系统无法读取文件会导致权限被拒绝错误。
如何解决解决SSH Permission Denied错误?这两种解决方案都包含你需要在服务器端执行的步骤。首先打开服务器上的终端,然后继续执行以下解决方案之一。
解决方案 1:启用密码验证
SSH Permission Denied解决办法:如果你想使用密码访问SSH服务器,修复SSH Permission denied错误的解决方案是在sshd_config文件中启用密码登录。
【如何修复SSH失败Permission Denied (publickey,gssapi-keyex,gssapi-with-mic)】为此,请在文本编辑器中打开该文件。此示例使用 nano 编辑器:
sudo nano /etc/ssh/sshd_config

在文件中,找到该PasswordAuthentication行并确保它以yes.
找到该ChallengeResponseAuthentication选项并通过添加禁用它no
如果行被注释掉,请删除井号#以取消注释。
如何修复SSH失败Permission Denied (publickey,gssapi-keyex,gssapi-with-mic)

文章图片
保存文件并退出。
通过键入以下命令重新启动 SSH 服务:
sudo systemctl restart sshd

解决方案 2:更改文件系统权限
修复SSH Permission Denied错误:出于安全考虑,不建议使用基于密码的登录作为 SSH 身份验证方法。因此,以下解决方案可能更可取,因为它可以排除公钥认证方法的故障。
首先,sshd_config使用文本编辑器打开文件:
sudo nano /etc/ssh/sshd_config

在文件中,确保以下选项设置如下:
PermitRootLogin no PubkeyAuthentication yes

如何修复SSH失败Permission Denied (publickey,gssapi-keyex,gssapi-with-mic)

文章图片
注意:上述步骤被视为最佳安全实践。如果你需要使用 root 登录,请将相关行设置为yes.
如何解决解决SSH Permission Denied错误?通过在行的开头添加井号来注释掉与 GSSAPI 相关的选项:
#GSSAPIAuthentication yes #GSSAPICleanupCredentials no

如何修复SSH失败Permission Denied (publickey,gssapi-keyex,gssapi-with-mic)

文章图片
另外,请确保该UsePAM行设置为yes
UsePAM yes

如何修复SSH失败Permission Denied (publickey,gssapi-keyex,gssapi-with-mic)

文章图片
保存文件并重启 sshd 服务:
systemctl restart sshd

现在导航到你的主文件夹并检查权限:
ls -ld

如何修复SSH失败Permission Denied (publickey,gssapi-keyex,gssapi-with-mic)

文章图片
如果你的所有者权限未设置为读取、写入和执行 (  drwx------),请使用chmod 命令更改它们:
chmod 0700 /home/[ your-username]

现在转到.ssh文件夹并重新检查权限:
ls -ld

如何修复SSH失败Permission Denied (publickey,gssapi-keyex,gssapi-with-mic)

文章图片
SSH Permission Denied解决办法:此目录还应具有文件所有者的读取、写入和执行权限。要强制执行它们,请chmod再次使用:
chmod 0700 /home/your_home/.ssh

.ssh文件夹包含该authorized_keys文件。使用以下命令检查其权限:
ls –ld authorized_keys

如何修复SSH失败Permission Denied (publickey,gssapi-keyex,gssapi-with-mic)

文章图片
文件所有者应具有读写权限。要设置它们,请使用:
chmod 0600 /home/[ username]/.ssh/authorized_keys

现在尝试再次使用密钥对登录。下面的输出显示了成功的登录尝试。
如何修复SSH失败Permission Denied (publickey,gssapi-keyex,gssapi-with-mic)

文章图片
注意:有关 Linux 文件权限的更多信息,请阅读Linux 文件权限教程。
修复SSH Permission Denied错误结论本教程介绍了对SSH Permission denied (publickey,gssapi-keyex,gssapi-with-mic)错误进行故障排除所需的步骤。通过完成指南中的步骤,你应该修复错误并成功通过 SSH 连接到你的服务器。

    推荐阅读