如何解决 SSH 权限被拒绝的问题

如何修复 ssh 权限被拒绝

使用 SSH 既省时又安全,但当您收到 ssh 权限被拒绝错误并且无法找出导致错误的原因时,可能会感到沮丧。

使用 ssh,您可以轻松登录远程服务器并执行所有活动,包括安装软件和处理文件。

如果您已经在客户端和服务器上安装了 SSH,但在访问服务器时仍然存在问题,那么在大多数情况下问题是由配置引起的。 很少有规则需要检查 SSH 的平稳运行。 本指南介绍了如何通过多种方式轻松修复 SSH 错误。

什么是 SSH?

安全的 Shell (SSH) 是一种允许客户端计算机连接到 Linux 使用基于文本的界面远程安全地服务器。 连接成功后,将打开一个 shell 会话,您可以在其中使用服务器。

ssh Permission Denied 报错是什么原因?

常见的原因包括:

  • 中包含的 SSH 公钥不正确 授权密钥 文件
  • 文件权限不正确
  • SSH 服务器配置文件中的错误配置

修复错误很简单,我们会考虑您可以使用的各种方法。

如何解决 SSH 权限被拒绝错误

如果您遇到如下错误,我们有解决方案。

解决方案 1:启用密码验证

您首先需要检查 密码认证 并确保它已启用。

你需要打开 sshd_config 使用编辑器在您的服务器上创建文件。 在我们的例子中,我们使用的是 nano 编辑器,命令是:

$ sudo nano /etc/ssh/sshd_config

打开后,找到 密码认证 线并确保它设置为结束 是的。

此外,在 PasswordAuthentication 下方,确保 挑战响应认证 被禁用并以 不。

进行更改后,保存文件并退出。 您必须使用以下命令重新启动 ssh 服务。

$ sudo systemctl restart sshd.service

接下来,继续尝试再次连接。

如果该解决方案对您不起作用,请尝试下面的其他解决方案。

解决方案2.检查其他配置

您的 sshd_configuration 文件决定了 ssh 连接是否通过。 因此,需要检查所有内容以修复 ssh 权限被拒绝的错误。 对于此解决方案,您必须找到各种线路并确保它们与下面列出的相匹配。

首先,像之前一样打开配置文件。

$ sudo nano /etc/ssh/sshd_config

打开后,找到并编辑下面的行以确保它们匹配。 它们中的大多数都被注释了,但您可以通过删除它们前面的 # 来取消注释。 从那里,您可以编辑和对齐它们以匹配下面的内容。

PermitRootLogin no

PubkeyAuthentication yes

UsePAM yes

最后,保存并退出文件。 然后,重启sshd

$ sudo systemctl restart sshd.service

您的 ssh 连接现在应该可以成功登录到服务器。

解决方案 3. 更改文件权限

您的主目录的所有者权限应设置为读取、写入和执行。 您可以使用以下命令进行验证。

$ ls -ld

如果没有设置为 drwx——, 设置它们使用 改变模式 命令。

$ chmod 0700 /home/your-username

此外,所有者权限 授权密钥 在里面 .ssh 目录应设置为读写。

使用下面的命令进行验证。

$ ls -ld authorized_keys

如果设置不正确,请使用以下命令。

$ chmod 0600 /home/your-username/ .ssh/authorized_keys

重新启动 sshd 后,您的 ssh 将开始正常连接并修复 ssh 权限被拒绝的错误。

结论

SSH 是远程操作时必须使用的 Linux 服务器。 还有其他选择,但该协议为您提供了安全的远程登录。 使用 SSH 时,您可能会遇到权限被拒绝的错误,这主要是由于配置错误造成的。 我们已经看到了您可以用来解决此问题的各种选项,其中任何一个或至少一个选项都适用于您的情况。