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

2021年11月18日22:30:52 发表评论 6,718 次浏览

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文件中启用密码登录。

为此,请在文本编辑器中打开该文件。此示例使用 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 连接到你的服务器。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: