Поиск по сайту:

Как установить правильные права доступа к каталогу SSH в Linux


Для правильной работы SSH необходимы правильные разрешения для каталога ~/.ssh или /home/username/.ssh: расположение по умолчанию для всей пользовательской конфигурации ssh. и файлы аутентификации. Рекомендуемые разрешения — чтение/запись/выполнение для пользователя и не должны быть доступны группе и другим лицам.

Кроме того, ssh также требует, чтобы файлы в каталоге имели разрешения чтение/запись для пользователя и были недоступны другим лицам. В противном случае пользователь может столкнуться со следующей ошибкой:

Authentication refused: bad ownership or modes for directory

В этом руководстве объясняется, как установить правильные разрешения для каталога .ssh и файлов, хранящихся в нем, в системах Linux.

Установите правильные права доступа к каталогу SSH в Linux

Если вы когда-нибудь столкнетесь с вышеуказанной ошибкой, вы можете установить правильные разрешения ssh для каталога .ssh с помощью команды chmod.

chmod u+rwx,go-rwx ~/.ssh
OR
chmod  0700 ~/.ssh

Чтобы проверить права доступа к каталогу ~/.ssh, используйте команду ls с флагами -l и -d, например:

ls -ld .ssh/

Ниже приведены некоторые файлы, которые вы найдете в каталоге ~/.ssh:

  • Файл закрытого ключа (например, id_rsa) – закрытый ключ для аутентификации, который содержит очень конфиденциальную информацию, поэтому он должен иметь разрешения на чтение и запись для владельца и быть недоступным. по группе и другим, иначе ssh откажется подключаться.
  • открытый ключ (например, .pub файл) – открытый ключ для аутентификации, который также содержит конфиденциальную информацию, поэтому он должен иметь разрешения на чтение и запись для владельца, разрешение только на чтение. по группам и другие.
  • authorized_keys – содержит список открытых ключей, которые можно использовать для входа в систему под этим пользователем. Он не является очень конфиденциальным, но должен иметь разрешения на чтение и запись для владельца и быть недоступен для группы и других лиц.
  • known_hosts – хранит список ключей хостов для всех хостов, на которые вошел пользователь ssh. Он должен иметь разрешения на чтение и запись для владельца и быть недоступен для групп и других лиц.
  • config – файл конфигурации для каждого пользователя, который должен иметь разрешения на чтение и запись для владельца и не должен быть доступен группе и другим лицам.

По умолчанию файлы в каталоге ~/.ssh создаются с правильными установленными разрешениями. Чтобы проверить их разрешения, выполните следующую команду в своем домашнем каталоге:

ls -l .ssh/ 

Если ssh жалуется на неправильные разрешения для любого из вышеперечисленных файлов, вы можете установить правильные разрешения для любого из файлов следующим образом:

chmod u+rw,go-rwx .ssh/id_rsa
chmod u+rw,go-rwx .ssh/id_rsa.pub
chmod u+rw,go-rwx .ssh/authorized_keys
chmod u+rw,go-rwx .ssh/known_hosts
chmod u+rw,go-rwx .ssh/config
OR
chmod 600 .ssh/id_rsa
chmod 600 .ssh/id_rsa.pub
chmod 600 .ssh/authorized_keys
chmod 600 .ssh/known_hosts
chmod 600 .ssh/config

Кроме того, домашний каталог пользователя не должен быть доступен для записи группе или другим лицам, как показано на следующем снимке экрана.

ls -ld ~

Чтобы удалить разрешения на запись для группы и других пользователей в домашнем каталоге, выполните следующую команду:

chmod go-w ~
OR
chmod 755 ~

Возможно, вам также будет интересно прочитать следующие статьи, посвященные SSH:

  • Как защитить и усилить сервер OpenSSH
  • 5 лучших методов обеспечения безопасности сервера OpenSSH
  • Как настроить вход без пароля по SSH в Linux [3 простых шага]
  • Как заблокировать брутфорс-атаки SSH с помощью SSHGUARD
  • Как использовать перехват портов для защиты службы SSH в Linux
  • Как изменить порт SSH в Linux

На этом всё! Используйте раздел комментариев ниже, чтобы задавать вопросы или высказывать свои мысли по этой теме.