分享最新优惠信息
购买主机更加划算

如何在Linux系统中设置正确的SSH目录权限

要使SSH能够正常工作,它需要对~/.ssh/home/username/.ssh目录具有正确的权限,即所有用户特定的SSH配置和身份验证文件的默认位置。推荐的权限是用户的读/写/执行,并且不能被组和其他用户访问。

此外,SSH还要求目录中的文件必须对用户具有读/写权限,并且不能被其他用户访问。否则的话,用户可能会遇到以下错误:

Authentication refused: bad ownership or modes for directory

SSH配置错误

接下来,小编简单介绍如何在Linux系统中对.ssh目录和存储在其中的文件设置正确的权限,以便其正常的运行工作。

其实,如果遇到上述错误,可以使用chmod命令在.ssh目录上设置正确的ssh目录权限。

# chmod u+rwx,go-rwx ~/.ssh
或者
# chmod  0700 ~/.ssh

要检查~/.ssh目录的权限,请使用带有-l和-d标志的ls命令,具体如下:

# ls -ld .ssh/

ls -ld .ssh/

以下是你将在~/.ssh目录中找到的一些文件:

  • private key file (相当于id_rsa ) – 用于认证的私钥,包含高度敏感的信息,因此必须对所有者有读写权限,不能被组和其他人访问,否则ssh会拒绝连接。
  • public key(如.pub 文件)——用于身份验证的公钥,其中还包含敏感信息,因此它应该具有所有者的读写权限、组的只读权限等。
  • authorized_keys – 包含可用于以该用户身份登录的公钥列表。它不是高度敏感的,但应该具有所有者的读写权限,并且不能被组和其他人访问。
  • known_hosts – 存储ssh用户已登录的所有主机的主机密钥列表。它应该具有所有者的读写权限,并且不能被组和其他人访问。
  • config – 每个用户的配置文件,应该具有所有者的读写权限,并且不应被组和其他人访问。

默认情况下,~/.ssh目录下的文件是使用正确的权限集创建的。要检查他们的权限,请在主目录中运行以下命令:

# ls -l .ssh/

如果ssh对上述任何文件的报出权限错误,这时候可以为任何文件设置正确的权限,如下所示:

检查SSH目录上的文件权限

此外,用户的主目录不应被组或其他用户写入,如下面的屏幕截图所示:

# ls -ld ~

检查用户目录的权限

要删除主目录上组和其他人的写权限,请运行以下命令:

# chmod go-w ~
或者
# chmod 755 ~

总装,SSH为了使用安全,其对属主的目录和文件权限有所要求。如果权限不对,则SSH的免密码登陆不会生效。用户目录权限应该755或700,就是不能是77x、777,还需要保证other用户不能有w权限。

如果大家在Linux系统中使用SSH出现上述错误,可以按照上述对其目录进行正确的配置,这样该问题应该就可以得到解决。

推荐阅读:

使用SSHGUARD阻止SSH暴力攻击的简单方法介绍

Linux系统中设置SSH无密码登录的三个步骤

Linux系统禁用或启用SSH root用户登录和限制SSH访问的简单方法

未经允许不得转载:惠主机 » 如何在Linux系统中设置正确的SSH目录权限